Python: запись при чтении файла - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть файл, в котором каждая строка содержит предложение.Однако некоторые предложения пусты, т. Е. В этом случае в строке просто "\n" символ новой строки.

Я хочу сделать следующее: если я найду пустое предложение, я хочу заменить его каким-нибудь символомкак.

Если я заменю "\n", он будет заменен во всех местах файла.

Однако я не уверен, как это сделать:

import sys

f = open(sys.argv[1], "wr")

for line in f:
    if len(line.strip())==0:
        line.replace("\n", "empty")
         # Then write the line back on the file
        f.write(line + "\n") # Will this replace the line in the file?

Правильно ли указан код выше?Можно ли одновременно прочитать строку и отредактировать ее?

1 Ответ

0 голосов
/ 30 апреля 2019

Это быстрый способ решения проблемы, но не идеальный способ сделать это, если у вас есть ограничения памяти.

f = open(sys.argv[1], "r")
lines = f.readlines()
f.close()

lines = ['empty' if i == '\n' else i for i in lines]
f = open(sys.argv[1], "w")
f.writelines(lines)
f.close()

Если у вас есть ограничения памяти, создание функции с использованием yield будетбыть лучшим способом сделать это

Редактировать: я должен также сказать, что если не было обновления, я не верю, что можно перезаписать определенную строку в файле, используя python, без переписываниявесь файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...