【发布时间】: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