【问题标题】:Execute files in windows with Python [duplicate]使用Python在Windows中执行文件[重复]
【发布时间】:2016-04-21 19:47:11
【问题描述】:

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

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

【问题讨论】:

  • 您能否发布更多关于您传递给subprocess.call 的内容以及完整的追溯信息?答案可能就在里面!
  • @mprat subprocess.call(["C:\\Path\\To\\png_file.png"]) 希望它能使用默认的 png 查看器执行
  • 您需要改用subprocess.call("file.png", shell=True)os.system("file.png")

标签: python subprocess execute


【解决方案1】:
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

【讨论】:

  • 谢谢,这就是我想要的。没有cmd窗口,只是简单的启动文件
【解决方案2】:

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

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

你需要的子流程

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

因为start 是外壳的一部分。

【讨论】:

    【解决方案3】:

    假设你有一个文件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 文件,只需运行它。

    【讨论】:

    • cmd 窗口打开了很长一段时间(大约 5 秒),但它完成了工作。谢谢!
    • 即使你双击一个文件,打开文件也需要几秒钟的时间(除非你有一个惊人的 CPU 或 SSD)...
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2019-07-17
    • 2020-05-19
    • 2014-02-21
    • 2022-07-16
    • 2020-09-14
    相关资源
    最近更新 更多