【发布时间】:2018-02-22 10:05:33
【问题描述】:
我正在尝试理解这行代码:
def delete_dir(dir):
with open('/dev/null', 'w+') as null:
subprocess.Popen("rm -r %s" % dir, shell=True, stdout=null, stderr=null).wait()
我是编程新手,所以我缺乏理解为什么这个过程设置为等待的上下文。将进程设置为等待有哪些常见的实践实现。谢谢
【问题讨论】:
-
请注意,在这种特殊情况下,您根本不应该使用
subprocess,而应该使用shutil.rmtree(dir)。 -
wait()在子进程退出之前不会返回。以这种方式它会阻塞,直到可以确定子进程的状态。尽管我认为这在您的代码示例中不是特别清楚,但这通常是可取的,例如,为了防止父进程和子进程以不一致的方式竞争相同的资源。
标签: python-2.7 subprocess