2016-04-21 4 views
1

Ich möchte mein Python-Programm machen, um eine Datei in Windows auszuführen. Das heißt, wenn ich versuche, eine .txt Datei auszuführen, würde es mit dem Standard Viewer .txt öffnen. Ist das möglich?Ausführen von Dateien in Windows mit Python

Ich versuchte subprocess.call, aber ich bekomme WindowsError: [Error 193] %1 is not a valid Win32 application. Die Datei, die ich ausführen möchte, ist eine .png Datei.

+0

Kannst du mehr darüber berichten, was du an 'subprocess.call' und das vollständige Traceback weitergegeben hast? Die Antwort ist wahrscheinlich da drin! – mprat

+0

@mphrat 'subprocess.call ([" C: \\ Pfad \\ To \\ png_file.png "])' in der Hoffnung, dass es mit dem Standard-PNG-Viewer –

+0

ausgeführt wird, müssen Sie 'subprocess.call (" Datei. png ", shell = True)' oder 'os.system (" file.png ")' stattdessen –

Antwort

4
os.startfile("myText.txt") #open text editor 
os.startfile("myText.pdf") #open in pdf viewer 
os.startfile("myText.html") #open in webbrowser 

ist, wie Sie diese

tun sollten jedoch

os.startfile("my_prog.py") 

ist wahrscheinlich eine schlechte Idee, weil es keine Möglichkeit gibt, zu wissen, ob Python als Standard festgelegt ist * zu öffnen Py oder Wenn ein Texteditor oder eine Ide als Standard zum Öffnen festgelegt ist * .py

+0

Danke, das ist, was ich gesucht habe. Kein cmd-Fenster, einfach nur die Datei starten –

1

Angenommen, Sie haben eine Datei myText.txt. Wenn Sie diese Datei über die Befehlszeile öffnen möchten, schreiben Sie einfach ~$ myText.txt.
In Python können Sie einfach einen Befehl cmd ausführen, der eine Datei öffnet. Sprich:

import os 
os.system("myText.txt") #Requires myText.txt and the python file to be in same folder. Otherwise full path is required. 

Dies würde die Datei im Standard-Editor öffnen, oder wenn es eine EXE-Datei ist, einfach ausführen.

+0

Das Cmd-Fenster war lange geöffnet (ca. 5 Sekunden), aber es hat seinen Zweck erfüllt. Vielen Dank! –

+0

Auch wenn Sie auf eine Datei doppelklicken, dauert es ein paar Sekunden, um die Datei zu öffnen (es sei denn, Sie haben eine erstaunliche CPU oder SSD) ... –

2

Dadurch wird die Datei mit der registrierten Anwendung für .txt Erweiterungen starten:

import os 
os.system("start myText.txt") 

mit subprocess Sie

subprocess.call("start myText.txt", shell=True) 

brauchen, da start Teil der Schale ist.