对于较大的文件大小,使用python从.gz文件中删除特定的行(模式)

对于较大的文件大小,使用python从.gz文件中删除特定的行(模式),python,gzip,Python,Gzip,我正在使用扩展名为.gz的文件,我需要用最少的处理时间从文件中删除特定的模式,并且根本不改变文件 你试过使用吗?参数类似于open 如果某个条件不匹配,则从文件中读取一行并写入另一个文件的示例: import gzip with gzip.GzipFile('output.gz', 'w') as fout: with gzip.GzipFile('input.gz','r') as fin: for line in fin: if not yo

我正在使用扩展名为.gz的文件,我需要用最少的处理时间从文件中删除特定的模式,并且根本不改变文件

你试过使用吗?参数类似于
open

如果某个条件不匹配,则从文件中读取一行并写入另一个文件的示例:

import gzip

with gzip.GzipFile('output.gz', 'w') as fout:
    with gzip.GzipFile('input.gz','r') as fin:
        for line in fin:
            if not your_remove_condition(line):
                fout.write(line)

请注意,输入和输出文件必须不同。

感谢您所做的更改,它根据功能工作,但我想修改相同的文件。在这里,它创建了一个新的文件名——“output.gz”,并将原始文件写入其中。是否可以对同一个文件进行修改而不创建新文件?如果不先将整个文件读入内存,这正是您希望使用指定的大型files@Lord_DeathMatch-你能建议一下解决问题的方法吗?@shashank-Ana和上面的答案应该能有效地解决你的问题。如果您需要将其输出到同一个文件,我建议使用
tempfile.mkstemp
创建一个临时文件,首先写入该文件,然后使用
os.rename
将其移回原始位置
shutil.move
<代码>操作系统。重命名仅在文件不存在时有效