По сути, вы не можете удалить материал в начале файла, поэтому вам придется записать в новый файл.
Я думаю, что pythonic путь выглядит следующим образом:
# get a iterator over the lines in the file:
with open("input.txt", 'rt') as lines:
# while the line is not empty drop it
for line in lines:
if not line.strip():
break
# now lines is at the point after the first paragraph
# so write out everything from here
with open("output.txt", 'wt') as out:
out.writelines(lines)
Вот несколько более простых версий этого, без with
для более старых версий Python:
lines = open("input.txt", 'rt')
for line in lines:
if not line.strip():
break
open("output.txt", 'wt').writelines(lines)
и очень прямолинейная версия, которая просто разбивает файл на пустую строку:
# first, read everything from the old file
text = open("input.txt", 'rt').read()
# split it at the first empty line ("\n\n")
first, rest = text.split('\n\n',1)
# make a new file and write the rest
open("output.txt", 'wt').write(rest)
Обратите внимание, что это может быть довольно хрупким, например, Windows часто использует \r\n
в качестве одиночного переноса строки, поэтому пустая строкабудет \r\n\r\n
вместо этого.Но часто вы знаете, что формат файла использует только один тип разрывов строк, так что это может быть хорошо.