Ich benutze das Subprozess-Modul, um einen Befehl in Python auszuführen. Aber das Problem ist, dass ich auch eine Zeichenfolge (für einen Dateinamen) in den Befehl aufnehmen möchte.Wie führe ich einen Befehl mit String-Formatierung aus?
Ein Beispiel dafür, was ich tun möchte:
from subprocess import call
command = "cd/DirectoryName"
call = [(command)]
In diesem speziellen Beispiel I Directory wollen eine Variable vom Benutzer festgelegt werden.
Was ich ohne Erfolg versucht:
Desktop=raw_input()
cmd="'cd %s'(Desktop/)"
call([cmd])
Hier ist der Fehler, den ich bekomme, wenn ich versuche, diese Befehle in dem Python-Shell auszuführen.
Chicken='Chicken'
command = 'say %s' % (Chicken)
print command
say Chicken
call([command])
Traceback (most recent call last):
File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 1, in <module>
# Used internally for debug sandbox under external interpreter
File "/Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/subprocess.py", line 1228, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Ich habe es gerade versucht und es hat die Shell zum Absturz gebracht.
Chicken="Chicken"
print Chicken
Chicken
call[("say %s" % (Chicken)]
Danke für die Hilfe mit der Syntax. Ich habe die Frage mit dem Fehler aktualisiert, den ich bekomme. Ich sehe nicht, wie sich die Datei oder das Verzeichnis auf den Befehl auswirken würde, den ich ausführen wollte. – ironcyclone
Einfach. Es gibt keinen Befehl mit dem Namen "cd". Es gibt einen "cd" -Befehl, aber das ist nicht das, was Sie gerade ausführen. –
Aber in dem Beispiel, das ich gepostet habe, sagt der Computer das Wort sprechen. Wie hätte es "Hühnchen" sagen sollen, als ich die Ruferklärung ausgeführt habe. – ironcyclone