我尝试使用此功能:Deleting a line from a file in Python 。我改变了一些代码以适应我的目的,如下:
def deleteLine():
f=open("cata.testprog","w+")
content=f.readlines()
outp = []
print(f.readline())
for lines in f:
print(lines)
if(lines[:4]!="0002"):
#if the first four characters of a line do not equal
outp.append(lines)
print(outp)
f.writelines(outp)
f.close()
问题是整个文件被空字符串替换,outp等于空列表。我的文件不为空,我想删除以“0002”开头的行。打印f.readline()给了我一个空字符串。有没有人知道如何解决它?
提前致谢,
答案 0 :(得分:1)
您已在错误模式下打开文件:“w +”。此模式用于写入和读取,但首先它被截断。首先打开文件进行阅读。如果它不是巨大的文件,将其读入内存,转换并通过在写入模式下打开文件来保存它。
答案 1 :(得分:1)
与链接问题相比,您完全更改了文件处理。在那里,首先打开文件以读取内容,关闭然后打开以写入已处理的内容。在这里打开它然后首先使用f.readlines()
,因此文件的所有数据都在内容中,文件指针位于文件的末尾。