繁体   English   中英

如何在Python中从文件中删除一行

[英]How to delete a line from a file in Python

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

提前致谢,

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM