Python使用subprocess.Popen导致子进程hang住
subprocess用于在Python内部创建一个子进程,比如调用shell脚本等。
举例:
p = subprocess.Popen(cmd, stdout = subprocess.PIPE, stdin = subprocess.PIPE, shell = True)
p.wait()
// hang here
print "subprocess finished"
在python的官方文档中对这个进行了解释:http://docs.python.org/2/library/subprocess.html
原因是stdout产生的内容太多,超过了系统的buffer
解决方法是使用communicate()方法。
p = subprocess.Popen(cmd, stdout = subprocess.PIPE, stdin = subprocess.PIPE, shell = True)
stdout, stderr = p.communicate()
p.wait()
print "subprocess finished"
相关推荐
dingwun 2020-11-16
赵家小少爷 2020-05-06
猛禽的编程艺术 2020-02-02
onetozero 2019-12-30
yuuuuy 2020-01-06
赵家小少爷 2019-12-09
jacktangj 2019-10-28
codeAB 2019-10-20
87682715 2019-06-28
程序方案代码 2019-06-27
kyelu 2019-06-14
PM实验室 2011-11-11
idning 2019-04-06
PythonGCS 2018-05-12
lhxxhl 2020-04-21
kkpiece 2020-03-03
skdzyl 2020-03-01
mieleizhi0 2020-03-01