Python proc.communiate()未等待svn命令完成
此python代码:Python proc.communiate()未等待svn命令完成,python,svn,Python,Svn,此python代码: print "Start update" print " ".join(["svn","update",workspace_root) proc = subprocess.Popen(["svn","update",workspace_root]) proc.communicate() if (proc.returncode!= 0): do_exit("Error trying to update "+workspace_root) print "Finish u
print "Start update"
print " ".join(["svn","update",workspace_root)
proc = subprocess.Popen(["svn","update",workspace_root])
proc.communicate()
if (proc.returncode!= 0):
do_exit("Error trying to update "+workspace_root)
print "Finish update"
#将CD放入工作区
提供以下结果:
Start update
svn update /data/home/vuser13/verify_and_merge_repo
Finish update
Updating 'verify_and_merge_repo':
At revision 307.
请注意,proc.communicate()不会等待svn
命令完成
怎么了?我的cron作业在长时间的操作中溢出,因为它没有等待完成。我在subprocess.call()中看到了相同的行为
谢谢 我认为您应该将stdout=PIPE
参数指定给Popen
,以便根进程等待子进程返回某些内容
请在此处阅读更多内容:尤其是这一点:
类似地,要在结果元组中获取除None之外的任何内容,还需要指定stdout=PIPE和/或stderr=PIPE
通信
和呼叫
两个呼叫在完成之前都要等待
。您不需要重定向stdout
来使用它们。谢谢!谢谢!你试过proc.wait()
?哪种操作系统?这种事情在Windows上批处理文件时可能会发生(“cron”当然是一个提示,但无论如何都要检查)。我在Red Hat 6上运行。谢谢