【问题标题】:How to use subprocess to unzip gz file in python如何使用子进程在python中解压缩gz文件
【发布时间】:2016-11-10 14:19:50
【问题描述】:

我不知道如何使用子进程在 python 中解压缩 gz 文件。

gzip 库太慢了,我想用 gnu/linux shell 代码和子进程库来实现上面相同的功能。

def __unzipGz(filePath):
  import gzip

  inputFile   =   gzip.GzipFile(filePath, 'rb')
  stream      =   inputFile.read()
  inputFile.close()

  outputFile  =   file(os.path.splitext(filePath)[0], 'wb')
  outputFile.write(stream)
  outputFile.close()

【问题讨论】:

    标签: python linux debian subprocess gzip


    【解决方案1】:

    你可以这样使用:

    import subprocess
    
    filename = "some.gunzip.file.tar.gz"
    output = subprocess.Popen(['tar', '-xzf', filename])
    

    由于这里没有太多有用的输出,您也可以像这样使用os.system 而不是subprocess.Popen

    import os
    
    filename = "some.gunzip.file.tar.gz"
    exit_code = os.system("tar -xzf {}".format(filename))
    

    【讨论】:

    • 谢谢!该文件是一个 gz 文件,所以我正在考虑使用 zcat 来提取 de .gz 文件。这个函数解压的不是一个文件,所以需要等待命令finalice执行?
    • 没用过zcat,所以不知道怎么用。对于tar,它将提取所有文件然后退出(这将阻止程序直到提取过程完成)。
    • 谢谢,终于用os.system和gunzip函数解决了
    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    相关资源
    最近更新 更多