Python - os.popen 和 subprocess.Popen 有什么区别?
os
进程功能被认为已经过时。在Python 2.4中引入了subprocess
模块,作为几个旧模块和函数的统一、更强大的替代品,与子进程有关。它们列在这里:
os.system
os.spawn*
os.popen*
popen2.*
commands.*
os.popen
在Python 2.6中被弃用(但有趣的是,在Python 3中它没有被弃用,它是通过subprocess.Popen
实现的)。文档中有一段关于如何使用subprocess.Popen
替换它的段落。
os.getcwd()
、os.chdir()
和os.path
这样的方法将被哪些 subprocess 的新技术所取代? - Nathan Basanesesubprocess
模块仅涉及子进程,它并不能替代整个os
模块。 - Felix Dombekos.popen
在Python 3中没有被弃用的原因是性能 - http://essays.ajs.com/2011/02/python-subprocess-vs-ospopen-overhead.html - anatoly techtoniksubprocess.Popen
实现,因此可能会更慢,而且明显不如强大。 - Felix Dombek