如何在 .gz 文件中搜索字符串?

珀金斯皇家

我不熟悉脚本并尝试读取 .gz 文件并复制包含“Alas!”的行。在其文件中。myfiles/all*/input.gz. 在提到的路径中,它应该搜索所有以 (all) 开头的目录。对于 input.gz 文件。在 input.gz 文件中,它应该搜索字符串“Alas!” 并打印文本文件中的行。我确定如何使用zgrepcommand执行此 linux zgrep 'Alas!' myfiles/all*/input.gz > file1.txt我在尝试为此编写脚本时丢失了某个地方。

三人组

该声明

    if 'Alas!':

仅检查字符串值'Alas!'是否“真实”(根据定义,确实如此);您想检查变量是否line包含此子字符串;

    if 'Alas!' in line:

另一个问题是您多次打开输出文件,覆盖了先前输入文件的任何结果。您只想在开始时打开它一次(或为追加而打开;但重复打开和关闭同一个文件是不必要且低效的)。

更好的设计可能是简单地打印到标准输出,并让用户根据需要将输出重定向到文件。(另外,可能接受输入文件作为命令行参数,而不是硬编码一个非常复杂的相对路径。)

第三个问题是输入行已经包含一个换行符,但print()会添加另一个。要么在打印前去掉换行符,要么告诉print不要提供另一个(或切换到write不添加一个)。

import gzip
import glob

with open('file1.txt', 'w') as o:
    for file in glob.glob('myfiles/all*/input.gz'):
        with gzip.open(file, 'rt') as f:
            for line in f:
                if 'Alas!' in line:
                    print(line, file=o, end='')

演示:https : //ideone.com/rTXBSS

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中快速在大文件中搜索字符串?

如何从.gz文件中搜索特定的字符串?

如何在Android Studio中的所有文件中搜索字符串?

如何在node.js中解压缩.gz字符串

如何在html文件中搜索字符串?

如何在python中提取gz文件

在Python中以字符串形式读取gz文件

如何在文件中搜索字符串?

C如何在文件中搜索字符串?

如何在Perl6中逐行读取gz文件

如何在Word字段中的字符串中搜索多个DOCX文件?

如何在Nautilus中最大程度地压缩.gz文件?

如何在大量gz /常规文件中查找包含某些字符串的日志并将其另存为一个/多个txt文件?

如何在也有zip文件的文件夹中搜索字符串

如何在Windows中打开.tar.gz文件?

如何使用grep在文件中搜索字符串组合?

如何在Windows中提取大量GZ文件

如何搜索字符串并替换文本文件中的字符串?

如何在Java中合并多个.gz文件?

如何从Haskell中的文件/字符串中搜索模式

如何在文件中搜索字符串?

如何在文件中搜索字符串,而文件又在归档文件中?

如何在C#中创建tar.gz文件

如何在Java中找出Corrupt gz文件

如何在搜索字符串中搜索任何字符?

如何在多个文件中搜索特定字符串,并返回包含该字符串的所有文件的名称?

如何在字符串中搜索字符串?

如何搜索和替换文件中的字符串

如何在 BASH 脚本中读取 .ini 文件以搜索文件中的字符串?