Лучшим и более безопасным способом было бы создание нового файла с меньшим содержимым, чтобы вы могли проверить содержимое перед удалением старого файла.Таким образом, мое предложение будет выглядеть следующим образом:
original_file = 'file.rpt'
file_copy = 'file_copy.rpt'
omit = True
with open(original_file, 'r') as rf:
with open(file_copy, 'w') as wf:
for line in rf:
if "&" in line:
omit = False
if omit:
continue
else:
wf.write(line)
Этот код будет пропускать все строки вплоть до и исключая строку, содержащую &
. Вы также можете проанализировать строку с помощью &
symbol:
original_file = 'file.rpt'
file_copy = 'file_copy.rpt'
omit = True
with open(original_file, 'r') as rf:
with open(file_copy, 'r+') as wf:
for line in rf:
if "&" in line:
before,after = line.split("&")
wf.write(after)
omit = False
continue
if omit:
continue
else:
wf.write(line)
Выше будет также записано все содержимое после &
, но в той же строке, пропуская что-либо до &
в той же строке
EDIT
Также проверьте, если вы открываете второй файл в правильном режиме, может быть, вам следует использовать 'w'
, чтобы сначала урезать файл 'r+'
добавит содержимое файла, и я не уверен, что это то, чтоты хочешь