【问题标题】:Opening another file from Python and terminate script从 Python 打开另一个文件并终止脚本
【发布时间】:2011-11-23 08:24:00
【问题描述】:

我正在尝试找出实现这一目标的最佳解决方案。基本上,我想从 Python 打开另一个程序(没关系,可以是图像、可执行文件等)。我已经尝试过 os.system 和 subprocess.call 但是两者都不会在之后终止脚本,而是等待返回。我看过 os.execl,它似乎接近我需要的,但我不确定我是否理解 arg,因为我总是收到 exec 格式错误和无效参数。我什至不确定这是否是我需要的正确功能。任何帮助将不胜感激。

我尝试过使用 subprocess.call 和 subprocess.Popen 使用类似的东西:

import subprocess
subprocess.Popen("B:\test.txt")

它最终会出现以下错误:

WindowsError: [Error 5] Access is denied.

【问题讨论】:

  • “可能是图像”是什么意思?
  • @Keith:因为它可以是图像文件、文本文件、可执行文件。任何我想打开的东西。

标签: python file io operating-system


【解决方案1】:

使用subprocess.Popen[docs]

只是不要在结果对象上调用communicate

【讨论】:

  • 我还应该提到,使用 subprocess.Popen 会给我在 Windows 上的访问被拒绝错误并且不起作用。
  • @Charlie:我还应该提到“访问被拒绝错误”是模糊的。如果您有特定的错误消息,那么请将您的问题重写为 (1) 包含您的代码和 (2) 包含您的特定错误消息。如果我们知道它是什么,我们也许能够真正解决您的实际问题。
  • @S. Lott 我还应该提到当我的意思是访问被拒绝时,我的意思是 WindowsError:[错误 5] 访问被拒绝。代码如下:导入子流程; subprocess.Popen("B:\test.txt")
【解决方案2】:
os.execlp("start", r"B:\test.txt")

(这适用于 Windows。在运行 X11 的 Unix 系统上,你会这样做:)

os.execlp("xdg-open", r"B:\test.txt")

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2016-01-31
    • 1970-01-01
    • 2011-05-10
    • 2020-04-21
    • 2021-03-22
    相关资源
    最近更新 更多