Ich frage mich, wie man Dateien in Programmen wie Notepad und Picture Viewer öffnet, abhängig von der Dateierweiterung. Ich benutze Python 3.3 unter Windows.
Ich habe etwas recherchiert und Leute haben ein Modul namens Image
erwähnt, aber wenn ich dieses Modul importiere, bekomme ich einen ImportError.
Folgendes habe ich bisher:
%Vor%Ich werde auch HTML- und JSON-Dateien haben, die ich in Notepad öffnen muss.
Verwenden Sie dies, um eine Datei mit dem Standardprogramm zu öffnen:
%Vor%Wenn Sie wirklich ein bestimmtes Programm wie Notepad verwenden möchten, können Sie das folgendermaßen machen:
%Vor%Wenn Sie vor dem Öffnen der Datei einige if-Checks benötigen, können Sie sie auch hinzufügen. Dies zeigt Ihnen nur, wie Sie die Datei öffnen.
Unter Windows können Sie os.startfile()
verwenden, um eine Datei mit der Standardanwendung zu öffnen :
Es gibt kein shutil.open()
, das dies plattformübergreifend tun würde. Die enge Annäherung ist webbrowser.open()
:
, das automatisch den Befehl open
unter OS X, os.startfile()
unter Windows, xdg-open
oder ähnlich unter Linux verwendet.
Wenn Sie eine bestimmte Anwendung ausführen möchten, können Sie das Modul subprocess
verwenden, z. B. Popen()
. erlaubt es, ein Programm zu starten, ohne auf den Abschluss zu warten:
Es gibt viele Möglichkeiten, das Modul subprocess
zum Ausführen von Programmen zu verwenden, zB subprocess.check_call(command)
blockiert, bis der Befehl beendet wird, und löst eine Ausnahme aus, wenn der Befehl mit einem Exit-Code ungleich Null endet.
Erweitern Sie den Vorschlag von FatalError mit einem Beispiel.
Ein zusätzlicher Vorteil der Verwendung von subprocessing
anstelle von os.system
besteht darin, dass dieselbe plattformübergreifende Syntax verwendet wird ( os.system
unter Windows erfordert zu Beginn einen "Start", während OS X "open" erfordert). Keine große Sache, aber eine Sache weniger, an die man sich erinnert.
subprocess.call
. Alles, was Sie tun müssen, um ein Programm zu starten, ist der Aufruf von subprocess.call()
und lass in einem list
von Argumenten, wobei der erste der Pfad zum Programm ist und der Rest zusätzliche Argumente sind, die Sie dem Programm liefern wollen du startest.
Zum Beispiel, Notepad.exe
zu starten %Vor%Das Übergeben mehrerer Argumente und Pfade ist ebenso einfach. Fügen Sie einfach weitere Elemente zur Liste hinzu.
Dadurch wird beispielsweise eine JAR-Datei mit einer bestimmten Kopie der Java-Laufzeitumgebung gestartet.
%Vor%Argument 1 zielt auf das Programm ab, das ich starten möchte. Argument2 liefert ein Argument an das Programm teilt ihm mit, dass es eine JAR ausführen wird, und schließlich teilt Argument3 dem Zielprogramm mit, wo die zu öffnende Datei zu finden ist.
Tags und Links python