Python 如何循环文件并删除所有符合条件的行?

Python 如何循环文件并删除所有符合条件的行?,python,Python,我有一个很大的文件。我试过其他软件,但都没用。所以我想制作一个自定义脚本。 然而,我自己就是无法解决这个问题 我想删除具有以下条件的文件中的每一行:if“[”in line: 有问题的文件是一个.txt文件,大约有14000000行。我更喜欢快速的文件 我在这个页面上尝试过其他类似的函数,但是我找不到任何符合我要求的函数。在while循环中使用file对象的readline方法。因此,当您在循环中时,获取所有不符合if条件的行,并将其存储到数据结构中 稍后打开一个新文件并将整个结构写入新文件而不

我有一个很大的文件。我试过其他软件,但都没用。所以我想制作一个自定义脚本。 然而,我自己就是无法解决这个问题

我想删除具有以下条件的文件中的每一行:
if“[”in line:
有问题的文件是一个.txt文件,大约有14000000行。我更喜欢快速的文件


我在这个页面上尝试过其他类似的函数,但是我找不到任何符合我要求的函数。

在while循环中使用file对象的readline方法。因此,当您在循环中时,获取所有不符合if条件的行,并将其存储到数据结构中


稍后打开一个新文件并将整个结构写入新文件

而不是删除,您可以非常轻松地制作一个只包含所需记录的文件副本

in_file_path = 'xxxx'
out_file_path = 'yyyy'

with open(in_file_path, 'r') as fh_in:
    with open(out_file_path, 'w') as fh_out:
        for line in fh_in:
            if not '[' in line:
                fh_out.write(line) 

如果您想更快,可以以二进制模式读写,并检查行中的
b'['

试试这个。这是一个简单的文件读写:

with open("sample_file.txt", "r") as reader:
    new_file = []
    for line in reader:
        if "[" not in line:
            new_file.append(line)
    with open("new_file.txt", "w+") as writer:
        writer.writelines(new_file)

你在使用linux吗?到底是什么问题?你试过什么,做过什么研究吗?堆栈溢出不是免费的代码编写服务。请参阅:,。我遇到了这个错误:返回codecs.charmap\u decode(输入,self.errors,decoding\u table)[0]UnicodeDecodeError:“charmap”编解码器无法解码位置359中的字节0x90:字符映射到我通过添加encoding=“utf-8”标记修复了它。