我小白的问题是:我需要通过cmd.exe的如何在一定的情况下在python终止进程
os.system("cmd.exe /c dir > output.txt")
运行过程(如目录),但我不想等待这个动作来完成,我需要以某种方式终止它(它会持续太久,我需要的东西是在开始时完成的) 我希望我的问题很清楚。
请帮帮忙,我已经遇到了好几个小时
编辑:整体解决方案应放置一个python脚本
我小白的问题是:我需要通过cmd.exe的如何在一定的情况下在python终止进程
os.system("cmd.exe /c dir > output.txt")
运行过程(如目录),但我不想等待这个动作来完成,我需要以某种方式终止它(它会持续太久,我需要的东西是在开始时完成的) 我希望我的问题很清楚。
请帮帮忙,我已经遇到了好几个小时
编辑:整体解决方案应放置一个python脚本
内这应该10秒
import time, subprocess
task = subprocess.Popen(["command"])
time.sleep(10)
task.kill()
如果杀后任务你正在尝试获取C:\ windows下的文件/文件夹列表,这里有另一种方法:
import os
with open("output.txt","w") as f:
f.write("\n".join(os.listdir("C:\\")))
这不起作用,因为脚本不会走得更远,直到“命令”完成 – pawel3ala 2014-09-04 12:47:36
@ pawel3ala,你确定吗?因为,我已经测试过它,它的工作原理 – 2014-09-04 12:49:29
@ pawel3ala:'Popen'是非阻塞的。 – 2014-09-04 12:57:55
捕获进程的PID,然后根据需要杀死它。例如:
import os
import signal
pid = os.spawnlp(os.P_NOWAIT, 'echo foo')
os.kill(pid, signal.SIGTERM)
我的os模块没有spawnlp ... – pawel3ala 2014-09-04 13:17:23
这是2014年。您应该使用'subprocess'模块 – goncalopp 2014-09-04 11:26:13
您的'cmd.exe'是否是异步的? – Zulu 2014-09-04 11:29:11