Python: Teilprozess und läuft ein bash-Skript mit mehreren Argumenten
Wie gehe ich über ausführen eines bash-Skript mit dem subprocess-Modul, das muss ich mehrere Argumente?
Dies ist, was ich bin derzeit mit:
subprocess.Popen(['/my/file/path/programname.sh', 'arg1 arg2 %s' % arg3], \
shell = True)
Dem bash-script scheint nicht zu jedem Parameter. Alle Erkenntnisse sind wir sehr dankbar!
InformationsquelleAutor der Frage user2510173 | 2013-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Argumente als eine Liste finden Sie unter die ersten code-Beispiel in den docs:
Wenn
arg3
nicht um einen string umwandeln string vor der übergabe ancheck_call()
:arg3 = str(arg3)
.InformationsquelleAutor der Antwort jfs
Wenn Sie
shell = True
das Skript und seine Argumente übergeben werden müssen, als ein string. Andere Elemente in derargs
Reihenfolge behandelt werden, die als Argumente an die shell.Finden Sie die komplette docs an http://docs.python.org/2/library/subprocess.html#subprocess.Popen.
InformationsquelleAutor der Antwort
Hallo, ich weiß, dass dies die Lösung ist Recht spät, aber könnte jemand helfen.
Beispiel:
Obigen Beispiel bietet arg1 und arg2 als Parameter an das shell-Skript test.sh
Im wesentlichen Teilprozess ein array erwartet. So konnte man Auffüllen, ein array und geben Sie als parameter.
InformationsquelleAutor der Antwort Sairaj Madhavan
Vergessen Sie hinzufügen
args
Namen.InformationsquelleAutor der Antwort loentar
Noch ein Beispiel, was nicht enthalten ist, alle oben genannten diejenigen,
subprocess.Popen(['/your/script.sh %s %s %s' %(argument1,argument2,argument3)], shell = True)
Bitte beachten Sie, dass, wenn Sie geben
%(argument1,argument2,argument3)
es sollte keine Leerzeichen zwischen%
und(
z.B.% (argument1,argument2,argument3)
ist nicht gültig.InformationsquelleAutor der Antwort Chintan Gotecha