2017-05-26 3 views
0

Ich möchte alle Protokolle komprimieren, die dem vom Benutzer eingegebenen Muster entsprechen, für das ich den folgenden Code verwende, aber einen Fehler erhalte.Wie komprimiert man mehrere Dateien in Linux mit Python-Skript?

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

Eingang gegeben als: * purato.log.2017-08

Fehler: gzip: komprimierte Daten nicht zu einem Endgerät geschrieben. Verwenden Sie -f, um die Komprimierung zu erzwingen.

Antwort

0

Du gzip die Zeichenfolge purato.log.2017-08* in Python zu geben, aber wenn Sie in gzip purato.log.2017-08* in der Shell ausführen, die Wild Card * vor gzip ersetzt wird aufgerufen. Um dieses Verhalten zu replizieren, aktivieren Sie shell auf der call()-Funktion.

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

Ich bekomme diese Fehler gzip: komprimierte Daten nicht an ein Terminal geschrieben. Verwenden Sie -f, um die Komprimierung zu erzwingen. –

+0

Es muss nur ein String sein, damit die Shell es interpretieren kann: '['gzip% s'% input]'. – dlasalle

+0

Es hat funktioniert !! Danke eine Tonne dlasalle !!!!!!! –

Verwandte Themen