【问题标题】:Execute two commands with subprocess.Popen Python [duplicate]使用 subprocess.Popen Python 执行两个命令 [重复]
【发布时间】:2021-12-31 23:25:08
【问题描述】:

我想通过从 python 脚本调用批处理文件来执行它。问题是这批需要设置JAVA_HOME。我不想在系统环境变量中设置这个变量,我想从 python 来做。有没有办法通过 Like this 执行两个批处理命令

p = Popen("""set JAVA_HOME=D:\GIT\G_ATC_FCT_SW_HSM_Daimler\Tools\jdk-8.0.242.08-hotspot;D:\\GIT\\G_ATC_FCT_SW_HSM_Daimler\\Tools\\plugins\\com.nxp.id.jcop.eclipse_6.0.0.8\\cmds\\converter.bat Java_Card_Converter-3.0.5""")
    stdout, stderr = p.communicate()

但我收到此错误FileNotFoundError: [WinError 2] The specified file could not be found。 是否可以从 popen 做到这一点?

【问题讨论】:

  • 你的反斜杠没有被转义(这可能是FileNotFoundError的来源)
  • 另外,如果一切都失败了,您可以使用这两个命令创建一个批处理文件并通过 Popen 运行那个
  • @GPhilo 感谢您的反馈,我用双反斜杠进行了测试,但这并不能解决问题,我认为 Popen 只能用于执行批处理或 shell 脚本。另外我不想创建一个批处理脚本来执行这两个命令,因为我可以从 python 执行它。
  • 那么由于您实际上不需要运行两个命令,而只需要在修改后的环境下运行脚本,因此请使用此处的解决方案:stackoverflow.com/a/4453495/3214872
  • 谢谢@GPhilo,你给我的链接帮了我很大的忙,将验证解决方案

标签: python batch-processing popen filenotfoundexception


【解决方案1】:

@GPhilo 提供的回复帮助了我。这是我的问题的解决方案:

那么由于您实际上不需要运行两个命令,而只需要在修改后的环境下运行脚本,因此请使用此处的解决方案:Python subprocess/Popen with a modified environment – GPhilo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-28
    • 2021-08-19
    • 2021-08-24
    • 2019-08-02
    • 2021-11-25
    • 2014-04-22
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多