2017-04-02 2 views
0

Ich verwende subprocess(), um Linux-Shell-Befehle in Python zu tun und was ich tun möchte, ist eine Datei lesen, erhalten Sie die benötigten Informationen und speichern Sie sie in einer Textdatei mit dem aktuellen Datum benannt. Lesen und alles funktioniert gut, aber ich weiß nicht, wie man die Datei speichert, indem man sie mit dem aktuellen Datum benennt. Ich habe versucht, eine Variable mit Subprozess zu machen, aber das war nicht erfolgreich.Python 2.7. Speichern Sie den Namen der Textdatei als Datum mit dem Befehl linux

def gauti(): 
     imti=tekstas.get("1.0", "end-1c") 
     subprocess.call("data=$(date +"%d_%m_%Y")", shell=True) 
     subprocess.call("grep -i '{imti}' /var/log/syslog > $data.txt".format(imti=imti), shell=True) 
+1

"Ich habe versucht, eine Variable mit Subprozess, aber das war nicht erfolgreich". Bitte zeigen Sie Ihren Code. – kaylum

+0

hinzugefügt. Vergiss es – Lenton

Antwort

2

Dieser Code wird nie funktionieren:

subprocess.call("data=$(date +"%d_%m_%Y")", shell=True) 
subprocess.call("grep -i '{imti}' /var/log/syslog > $data.txt".format(imti=imti), shell=True) 

Da eine neue Schale jedes Mal erstellt wird, so dass Ihre Variable $ data nicht von dem ersten Befehl an den zweiten übergeben wird. Sie können dies tun:

subprocess.check_call("grep -i '{}' /var/log/syslog > $(date +%d_%m_%Y.txt)".format(imti), shell=True) 
+0

das hat funktioniert. Vielen Dank :) – Lenton

Verwandte Themen