我试图理解这行代码:
def delete_dir(dir):
with open('/dev/null', 'w+') as null:
subprocess.Popen("rm -r %s" % dir, shell=True, stdout=null, stderr=null).wait()
我是编程新手,所以我缺乏上下文来理解为什么这个过程设置为等待。设置进程等待的常见做法有哪些?谢谢
最佳答案
Popen.wait
不告诉进程等待,它告诉我们的脚本在继续执行之前等待进程终止。当子进程正在做一些会影响脚本行为的事情时,这非常有用。
在这种情况下,我们等待 rm -r 命令完成删除给定的目录,然后再继续,因为如果我们的函数被称为 delete_dir
,这是合理的让调用者期望在函数返回之前删除目录。
with open('/dev/null', 'w+') as null
(如果您好奇的话)的目的是通过管道传输子进程的 来抑制子进程的任何输出stdout
和 stderr
到 /dev/null
句柄。
关于python-2.7 - Popen.wait() 的常见/实际用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48924580/