我正在使用 Windows 平台。在我的 Python 脚本中,我可以通过以下方式调用外部程序:
os.system("C:\mainfolder\menu.exe C:\others\file1.inp C:\others\file2.inp")
os.popen("C:\mainfolder\menu.exe C:\others\file1.inp C:\others\file2.inp")
subprocess.call(["C:\mainfolder\menu.exe","C:\others\file1.inp" "C:\others\file2.inp"])
其中:
menu.exe:是我的外部程序。
file1和file2:是我外部程序的输入文件。
以上所有都很好。现在,我外部程序已经成功完成,我需要完全关闭它以及由它打开的所有窗口。我查看了许多其他帖子、Python文档等,并找到了一些命令,例如:
os.system("taskkill /im C:\mainfolder\menu.exe")
os.kill(proc.pid,9)
child.kill()
但是它们无法正常工作。我花了很多时间尝试找到适合我的解决方案,直到意识到无论我在之后输入哪些命令,它们都不会被读取,因为计算机不知道我的外部程序已经完成。这就是为什么我可以通过在命令行中键入taskkill /im menu.exe随时轻松终止程序,但不能通过Python来实现。
有人知道如何解决这个问题吗?我在调用外部程序时需要包含其他内容吗?