Есть 1000 файлов поверх html.Могу ли я читать и перезаписывать, используя «open» только один раз?
Я хочу сделать:
- чтения файла.
- отделка конкретной линии.
- Запишите файл (не добавляйте).
следующий код работал. но я думал, что использование «открытого» дважды было расточительным. Могу ли я написать проще?
for file_path in glob.glob(os.path.join(dir, '*.html')):
with open(file_path, "r", encoding="utf-8") as reader:
html_ = reader.read()
replaced = html_.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>", "")
with open(file_path, "w", encoding="utf-8") as writer:
writer.write(replaced)
Я пробовал:
'r+'
: это дополнение.'w+'
:read()
способ возвращенный''
.
Что касается эффективности, не лучше ли использовать «FileInput» и изменить его на месте? –
@ JimFasarakis-Hilliard: 'FileInput' создаст отдельный файл и переместит его по старому местоположению. Это не обязательно более эффективно. –
Спасибо. Понимаю. Я понял, что когда я вызываю read(), указатель прогрессирует. И когда я вызываю write(), писатель начинает писать с этого момента. Большое спасибо за ваши понятные объяснения. Я также вызываю truncate(). –