2017-05-26 10 views
0

ユーザが入力したパターンと一致するすべてのログを圧縮したいのですが、以下のコードを使用していますが、エラーが発生しています。pythonスクリプトを使用してlinuxで複数のファイルを圧縮するには?

import subprocess 
input=input("Enter log details to compress") 
subprocess.call(['gzip',input],shell=True) 

入力として与えられた:purato.log.2017-08 *

エラー:GZIP:端末に書き込まれていない圧縮されたデータ。圧縮を強制するには-fを使用します。

答えて

0

あなたはしかし、あなたがシェルでgzip purato.log.2017-08*を実行したときに、Pythonでgzip文字列purato.log.2017-08*を与えている、gzip前に置換ワイルドカード*が呼び出されます。

この動作を複製するには、call()機能でshellを有効にします。端末に書き込まれていない圧縮データ:

subprocess.call(['gzip purato.log.2017-08*'],shell=True) 
+0

は、私はこのエラーに のgzipを取得しています。 -fを使用して圧縮を強制する –

+0

シェルがそれを解釈するための文字列はすべて1つである必要があります: '['gzip%s'%input]'。 – dlasalle

+0

それは働いた! Thanx a ton dlasalle !!!!!!! –

関連する問題