我花费一个多小时尝试解决这个问题,并查阅了Stack Overflow上的多个相关问题。我想要实际执行一个程序,而不是将其包装成一个Python进程以获取输出。
我有一段代码用于监控守护进程,如果由于任何原因守护进程关闭,我希望重新启动它。我发现唯一能做到这一点的是使用os.startfile()函数。然而,困扰我的问题是,我无法向os.startfile()添加命令行参数。
我已经阅读了os.startfile()的官方文档,并对其理解感到困惑。在文档中,它提到了打开操作参数等,但在PyCharm中的代码示例中,该函数仅展示了两个参数:path和operation。
[图片:os.startfile()函数在PyCharm中的代码示例]
并且下面的代码...
from sys import argv
from os import startfile
if len(argv) == 1:
startfile(r'C:\Windows\System32\cmd.exe /k python.exe os_startfile.py process', operation='open')
else:
for index, enum in enumerate(argv):
print(index, enum)
exit()
... 生成了以下错误:
Traceback (most recent call last):
File "C:\Users\phpjunkie\Python\Scripts\testing\os_startfile.py", line 5, in <module>
startfile(r'C:\Windows\System32\cmd.exe /k python.exe os_startfile.py process', operation='open')
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'C:\\Windows\\System32\\cmd.exe /k python.exe os_startfile.py process'