怎样判断子进程是否运行完毕?
1.我先创建了一个子进程:用subprocess.Popen调winrar压缩文件,生成压缩包 D:\proj_cs\data.rar
2.然后把data.rar文件上传到ftp服务器:Upload_By_FTP('D:\proj_cs\data.rar')
3.问题来了:子进程中压缩文件需要一些时间,尤其是文件大的时候,但是python不管,它是创建了子进程后马上就执行Upload_By_FTP('D:\proj_cs\data.rar'),这样就会提示:No such file or directory: 'D:\\proj_cs\\data.rar'
4.我目前暂时在1、2步骤之间插入time.sleep(x)来解决这个问题,但是时间x很难掌握,因为文件时大时小不好把握。
5.我使用time.sleep常会出现脚本运行后“没有响应”假死状态,不知道为什么。
望有高人指点一二,谢谢!
------解决方案--------------------
suprocess.call或者waitpid。具体看文档。
------解决方案--------------------或者试试poll(),可以判断子进程是否结束,这个是非阻塞的,你可以同时做点别的事...