Python gzip-t在循环中运行脚本

Python gzip-t在循环中运行脚本,python,bash,for-loop,gzip,Python,Bash,For Loop,Gzip,我在一个文件夹中有几个*.gz文件,我想在它们上运行python脚本。然而,我一直在犯错误。这些错误与损坏的gz文件有关 我只想在正确压缩的gz文件中运行python脚本。我尝试了以下方法: for i in *.gz; do if gzip -t $i then python myscript.py else echo 'file is corrupt' fi done; 但是我的脚本也在损坏的gz文件中运行(并且出现了很多错误

我在一个文件夹中有几个*.gz文件,我想在它们上运行python脚本。然而,我一直在犯错误。这些错误与损坏的gz文件有关

我只想在正确压缩的gz文件中运行python脚本。我尝试了以下方法:

for i in *.gz;
do
    if gzip -t $i
    then
        python myscript.py
    else
        echo 'file is corrupt'
    fi
done;
但是我的脚本也在损坏的gz文件中运行(并且出现了很多错误)

或者,我可以将python脚本修改为只读取未损坏的gz文件吗

我当前脚本的顶部是:

for tf in glob.glob('*.gz'):
    tar = tarfile.open(tf)
    tar.extractall()
    tar.close()
    files = [file for file in glob.glob('*.txt')] ..
如果我打开gz文件,我想保留它(因为我知道gunzip在解压缩时会删除原始的gz文件)

提前感谢

使用:

gunzip -t $i
相反,要检查腐败:

for i in *.gz;
do
    if gunzip -t $i
    then
        python myscript.py
    else
        echo 'file is corrupt'
    fi
done;
gunzip的默认设置是解压缩

-t测试文件的完整性

要使用bash完成这一切,请执行以下操作:

for i in *.gz;
do
    if gunzip -t $i
    then
        gzip -d $1 # -d decompress
    else
        echo 'file is corrupt'
    fi
done;
当您将-k选项传递给gunzip时,gunzip将保留原始文件,-k用于保留输入文件使用:

gunzip -t $i
相反,要检查腐败:

for i in *.gz;
do
    if gunzip -t $i
    then
        python myscript.py
    else
        echo 'file is corrupt'
    fi
done;
gunzip的默认设置是解压缩

-t测试文件的完整性

要使用bash完成这一切,请执行以下操作:

for i in *.gz;
do
    if gunzip -t $i
    then
        gzip -d $1 # -d decompress
    else
        echo 'file is corrupt'
    fi
done;

当您将-k选项传递给gunzip时,gunzip将保留原始文件,-k用于保留输入文件

谢谢@bhristov。但是,似乎仍在为损坏的文件运行脚本。输出错误仍然是:Traceback(最近一次调用last):tar.extractall()中第8行的文件“myscript.py”。。。。。。。。。EOFError:压缩文件在到达流结束标记之前结束。@gusa10您应该使用gunzip或gzip而不是tar来提取。谢谢。你能帮我一下吗?我已经修改了这个问题。@gusa10我们可以用bash来做这个吗?我想这会容易得多。是的。我想在gz解压后启动python脚本是个问题。谢谢@bhristov。但是,似乎仍在为损坏的文件运行脚本。输出错误仍然是:Traceback(最近一次调用last):tar.extractall()中第8行的文件“myscript.py”。。。。。。。。。EOFError:压缩文件在到达流结束标记之前结束。@gusa10您应该使用gunzip或gzip而不是tar来提取。谢谢。你能帮我一下吗?我已经修改了这个问题。@gusa10我们可以用bash来做这个吗?我想这会容易得多。是的。我想在gz解压后启动python脚本是一件很重要的事情。gunzip-k,保持输入文件完整,不删除them@gusa10:您是否曾经尝试手动
gunzip
一个您的Python程序声称已损坏的归档文件?我的猜测是,这些归档文件并没有真正损坏,但问题出在Python代码中。特别是,我认为您需要的不是
tarfile.open
Yes,我无法再提取那些*.gz文件中的文件。而且,它们的尺寸比预期的要小。这对我来说很奇怪,因为我以前处理过这些文件,一切都很好。gunzip-k,保持输入文件完整,不会删除them@gusa10:您是否曾经尝试手动
gunzip
一个您的Python程序声称已损坏的归档文件?我的猜测是,这些归档文件并没有真正损坏,但问题出在Python代码中。特别是,我认为您需要的不是
tarfile.open
Yes,我无法再提取那些*.gz文件中的文件。而且,它们的尺寸比预期的要小。这对我来说很奇怪,因为我以前处理过这些文件,而且一切都很好。