使用 subprocess.Popen Python 执行两个命令 [重复]
Posted
技术标签:
【中文标题】使用 subprocess.Popen Python 执行两个命令 [重复]【英文标题】:Execute two commands with subprocess.Popen Python [duplicate] 【发布时间】: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 执行它。
那么由于您实际上不需要运行两个命令,而只需要在修改后的环境下运行脚本,因此请使用此处的解决方案:***.com/a/4453495/3214872
谢谢@GPhilo,你给我的链接帮了我很大的忙,将验证解决方案
【参考方案1】:
@GPhilo 提供的回复帮助了我。这是我的问题的解决方案:
那么由于您实际上不需要运行两个命令,而只需要在修改后的环境下运行脚本,因此请使用此处的解决方案:Python subprocess/Popen with a modified environment – GPhilo
【讨论】:
以上是关于使用 subprocess.Popen Python 执行两个命令 [重复]的主要内容,如果未能解决你的问题,请参考以下文章