【发布时间】:2016-10-04 22:59:42
【问题描述】:
我对以下 3 个函数族有一个基本的疑问:
例如,我想知道 Python 中的当前工作目录。因此,实现这一目标的一些方法可能是:
os.system("pwd")
os.getcwd()
subprocess.Popen(['pwd'], stdout=PIPE, stderr=PIPE)
我在网上找到了很多资源来区分上面的第三个和其他的,但是找不到太多关于上面前两个的区别。
请帮我理解这3个之间的区别,尤其是
- 从输出的角度来看
- 从性能的角度来看
- 从实现的角度来看,这三个是如何在内部实现的,例如,它们中的每一个是否产生一个新进程,它们如何与内核交互等。
任何指向我的自我参考的指针也将不胜感激。
【问题讨论】:
-
os.getcwd()将目录作为字符串获取,其他的则生成pwd进程。生成一个进程来获取目录是愚蠢的。 -
okie.. 你能否指出一些可以详细说明并帮助我深入理解的资源?
-
help(os.getcwd),help(os.system), docs.python.org/2/library/os.html -
好吧,
os.getcwd会得到当前的工作目录 in python 其中pwd可以在子进程中执行不同的执行环境 or 可能不可用 or 将以需要在使用之前对其进行解码的格式给出路径。我绝对支持 Alaxander,产生一个获取工作目录的过程是愚蠢的。
标签: python python-2.7 subprocess os.system