在 Python 中,当一个子进程被终止时,可能会导致子进程无法输出结果到标准输出。以下是一种解决方法:
import subprocess
def run_command(cmd):
try:
# 创建子进程并执行命令
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
# 获取子进程的输出
output, error = proc.communicate()
# 如果子进程正常执行,则输出结果
if proc.returncode == 0:
print(output.decode())
# 如果子进程发生错误,则输出错误信息
else:
print("Error:", error.decode())
except Exception as e:
print("Error:", str(e))
# 调用示例
run_command("echo Hello World")
在上面的示例中,我们使用subprocess.Popen
函数创建子进程,并指定stdout=subprocess.PIPE
参数来获取子进程的标准输出。然后,我们使用communicate
方法获取子进程的输出结果和错误信息,并根据子进程的返回码来判断子进程是否执行成功。最后,我们根据需要输出结果或错误信息。
使用这种方法,即使子进程被终止,也能够获取到输出结果或错误信息。
上一篇:被终止应用的后台模式选项
下一篇:被抓超速 - CodingBat