2009-05-26 5 views
2

Mögliche Duplizieren auszuführen:
How to call external command in PythonEmpfohlene Weise ein anderes Programm aus einem Python-Skript

Ich schreibe ein Python-Skript auf einem Windows-Rechner. Ich muss eine andere Anwendung "OtherApp.exe" starten. Was ist der beste Weg, dies zu tun?

Bis jetzt habe ich mir os.system() oder os.execl() angesehen und sie sehen nicht ganz angemessen aus (ich weiß nicht einmal, ob letzteres überhaupt in Windows funktionieren wird).

+0

Duplizieren von http://stackoverflow.com/questions/89228/how-to-call-external-command-in-python –

+0

Entschuldigung für das Duplikat. Ich wünschte, ich könnte es schließen. Hat aber gewählt. –

Antwort

3

Die empfohlene Methode ist die Verwendung der subprocess module. Alle anderen Möglichkeiten (wie os.system() oder exec) sind brüchig, unsicher und haben subtile Nebenwirkungen, die Sie nicht kümmern sollten. Subprozess ersetzt alle von ihnen.

-1

Eines der Dinge, die Subprozess bietet eine Methode, um die Ausgabe eines Befehls zu fangen, zum Beispiel unter Verwendung von [popen] auf einem Windows-Rechner

import os 
os.popen('dir').read() 

nachgeben

'Volume in Laufwerk C hat kein Label. \ n Volume Seriennummer ist 54CD-5392 \ n \ n Verzeichnis von C: \ Python25 \ Lib \ Site-Pakete \ Pythonwin \ n \ n [.] [..] dde.pyd license.txt \ nPythonwin .exe [pywin] scintilla.dll tmp.txt \ nwin32ui.pyd win32uiole.pyd \ n 7 Datei (en) 984,178 bytes \ n 3 Datei (en) 30,539,644,928 bytes frei \ n '

Welche können dann geparst oder manipuliert werden, wie Sie wollen.

+0

Das Unterprozessmodul hat os.popen in der neueren Version von Python ersetzt. Das ist der empfohlene Weg, damit umzugehen. http://docs.python.org/library/subprocess.html –

Verwandte Themen