Ali*_*i_G 3 python subprocess timeout output
我试图在引发TimeoutExpired异常时获取子进程输出(在Windows上).有任何想法吗?
try:
proc = subprocess.run(cmd,timeout=3)
except subprocess.TimeoutExpired:
print(???)
Run Code Online (Sandbox Code Playgroud)
您需要使用Popen和subprocess.PIPE以便在超时到期时捕获进程输出.特别是Popen.communicate就是你所需要的.这是一个例子
proc = subprocess.Popen(["ping", "192.168.1.1"],
stdout=subprocess.PIPE)
try:
output, error = proc.communicate(timeout=2)
except subprocess.TimeoutExpired:
proc.kill()
output, error = proc.communicate()
print(output)
print(error)
Run Code Online (Sandbox Code Playgroud)
这将打印过程输出直到超时.
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |