我小白的問題是:我需要通過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