2016-11-10 11 views
0

サブプロセスを使用してpythonでgzファイルを解凍する方法は知りません。サブプロセスを使用してpythonでgzファイルを解凍する方法

gzipライブラリはとても遅く、gnu/linuxシェルコードとサブプロセスライブラリを使用して上記の同じ機能を実行することを考えていました。

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() 

答えて

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)) 
+0

ありがとうございます!ファイルはgzファイルなので、zcatを使用して.gzファイルを抽出することを考えています。この関数は1つのファイルだけでなく、実行を終了させるためにコマンドを待つ必要がありますか? – eifersucht

+0

'zcat'を使用していないので、どのように動作するのか分かりません。 'tar'ではすべてのファイルを抽出して終了します(抽出プロセスが終了するまでプログラムをブロックします)。 – Fejs

+0

ありがとう、やっと私はos.systemとgunzip関数を使って解決しました – eifersucht

関連する問題