Python: 如何在Popen打开的子进程结束时被通知

4 投票
2 回答
5131 浏览
提问于 2025-04-16 03:19

我正在使用Popen来运行一个命令,但我不知道怎么写一个回调函数,让它在命令执行完后被调用。有没有什么想法?

谢谢。

Bin

2 个回答

2

你可以使用 Popen 对象的 p.poll() 方法。

http://docs.python.org/library/subprocess.html#subprocess.Popen.poll

2

你可以使用 communicate() 这个方法:

 p = subprocess.Popen('find . -name "*.txt"', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 stdout, stderr = p.communicate()

你也可以使用 wait(),不过如果子进程的输出缓冲区满了,这可能会导致一些问题。

撰写回答