用Python在windows中执行文件

问题描述:

我想让我的python程序在Windows中执行一个文件。这意味着如果我尝试执行.txt文件,它将以默认的.txt查看器打开。那可能吗?用Python在windows中执行文件

我试过subprocess.call,但我得到WindowsError: [Error 193] %1 is not a valid Win32 application。我试图运行的文件是.png文件。

+0

你可以发布更多关于你传递给'subprocess.call'和完整的追溯?答案可能在那里! – mprat

+0

@mprat'subprocess.call([“C:\\ Path \\ To \\ png_file.png”])'希望它会使用默认的png查看器 –

+0

执行,您需要使用'subprocess.call(“file。 png“,shell = True)'或'os.system(”file.png“)'而不是 –

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

是你应该怎么做这个

然而

os.startfile("my_prog.py") 

可能是一个坏主意,因为没有办法知道是否Python是设置为默认打开*的.py或如果一个texteditor或ide被设置为默认打开* .py

+0

谢谢,这就是我一直在寻找。没有cmd窗口,只是简单地启动文件 –

假设您有一个文件myText.txt
如果您想通过命令行打开该文件,您可以简单地写入~$ myText.txt
所以在Python中,你可以运行一个打开文件的cmd命令。说:

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

这将打开默认编辑器中的文件,或者如果它是一个exe文件,只需运行它。

+0

cmd窗口已经打开了相当长的一段时间(大约5秒),但它完成了这项工作。谢谢! –

+0

即使当你双击一个文件,它需要几秒钟来打开文件(除非你有一个惊人的CPU或SSD)... –

这将启动与注册的应用程序的文件扩展名.txt

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

与子你需要

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

因为start是外壳的一部分。