如何从Python中删除文件中的行

时间:2014-04-16 07:46:17

标签: python

我尝试使用此功能: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()给了我一个空字符串。有没有人知道如何解决它?

提前致谢,

2 个答案:

答案 0 :(得分:1)

您已在错误模式下打开文件:“w +”。此模式用于写入和读取,但首先它被截断。首先打开文件进行阅读。如果它不是巨大的文件,将其读入内存,转换并通过在写入模式下打开文件来保存它。

答案 1 :(得分:1)

与链接问题相比,您完全更改了文件处理。在那里,首先打开文件以读取内容,关闭然后打开以写入已处理的内容。在这里打开它然后首先使用f.readlines(),因此文件的所有数据都在内容中,文件指针位于文件的末尾。