首页 > 解决方案 > Python 3 子进程崩溃

问题描述

我对 subprocess.Popen、subprocess.call 或 subprocess.run 有疑问。如果我尝试运行以下脚本:

cmd = "\"C:/Program Files (x86)/Phoenix Contact Software/TPS Configurator/FS_PROG/FS_PROG.exe\""
arg1 = " \"tps_configurator.xml\""
arg2 = " 192.168.16.227"
arg3 = " 192.168.16.29"
arg4 = ' {0:0{1}X} '.format(intmac,12)
arg5 = ' {0:0{1}X} '.format(intmac + 1,12)
arg6 = ' {0:0{1}X} '.format(intmac + 2,12)
arg7 = " \"0               \""

p = subprocess.Popen(cmd + arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7)
time.sleep(5)
input("\npress enter to quit")

Python 崩溃,我启动脚本的 powershell 立即关闭。
如果我删除 time.sleep(5) 它可以工作。使用 p.wait() 我有同样的问题。
如果脚本等待程序,它就会崩溃。
我还尝试了 os.system、subprocess.run 和 subprocess.call,结果相同。
我用 Python 3.9.5 和 Python 3.10 进行了尝试。

标签: pythoncrashsubprocess

解决方案


推荐阅读