基本上你不能从文件的开头删除东西,所以你必须写入一个新文件。
我认为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)以下是一些较简单的版本,对于较旧的Python版本没有with:
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。但通常你知道文件的格式只使用一种换行符,所以这可能没问题。