<p>您可以使用<code>subprocess</code>模块调用文件上的<code>gzip -t</code>。。。</p>
<pre><code>from subprocess import call
import os
with open(os.devnull, 'w') as bb:
result = call(['gzip', '-t', "zero.tar.gz"], stdout=bb, stderr=bb)
</code></pre>
<p>如果<code>result</code>不是0,则有问题。不过,您可能需要检查gzip是否可用。我为此写了一个实用函数</p>
<pre><code>import subprocess
import sys
import os
def checkfor(args, rv = 0):
"""Make sure that a program necessary for using this script is
available.
Arguments:
args -- string or list of strings of commands. A single string may
not contain spaces.
rv -- expected return value from evoking the command.
"""
if isinstance(args, str):
if ' ' in args:
raise ValueError('no spaces in single command allowed')
args = [args]
try:
with open(os.devnull, 'w') as bb:
rc = subprocess.call(args, stdout=bb, stderr=bb)
if rc != rv:
raise OSError
except OSError as oops:
outs = "Required program '{}' not found: {}."
print(outs.format(args[0], oops.strerror))
sys.exit(1)
</code></pre>