【问题标题】:Program error while using python subprocess.call() function使用 python subprocess.call() 函数时出现程序错误
【发布时间】:2012-01-28 09:07:28
【问题描述】:

当我在 python 脚本中使用 subprocess.call() 函数时,我试图打开一个程序,它会打开程序,但由于某种原因程序不允许这样做,只是抛出一个“未处理的异常” " 错误,我知道问题可能出在程序中,因此可能有任何其他命令会打开程序,填写一些字段并按“提交?”

谢谢!

编辑:我没有要发布的代码..

str = 'd:\Softwares\X.exe'
subprocess.call(str)

我也试过:

subprocess.call(str,shell=True)

【问题讨论】:

  • 粘贴你要调用的程序的相关代码。
  • 只是代码风格——不要调用名称变量str,而是写'D:\\Softwares\\X.exe'r'D:\Softwares\X.exe''D:/Softwares/X.exe'
  • 应该警告您 subprocess.call 不会让您在其他程序中执行窗口级操作,例如填写字段和按下按钮等。这是完全不同的问题。

标签: python subprocess


【解决方案1】:

尝试以同样的方式调用另一个程序。如果问题仍然存在,则问题出在您的代码上。如果它消失了,则问题出在程序上。

我认为更改为 'D:/Softwares/X.exe' 或其他字符串格式会有所帮助,因为 '\' 字符是转义字符 ... 例如用于表示新行 '\n '。

【讨论】:

    【解决方案2】:

    如果您使用正斜杠(反斜杠是 Python 中的转义符号),它可能会起作用。如果没有,请像这样写第一行:

    str = r'd:\Softwares\X.exe'
    

    r 告诉 Python 您正在创建一个原始字符串,因此它将忽略转义符号。更多信息请访问:https://docs.python.org/2/reference/lexical_analysis.html#string-literals

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2021-02-16
      • 2019-03-02
      • 1970-01-01
      • 2019-04-05
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多