【问题标题】:Python - I'm trying to get the output of pwd and instead i get the exit status [duplicate]Python - 我正在尝试获取 pwd 的输出,但我得到了退出状态 [重复]
【发布时间】:2013-04-14 10:35:21
【问题描述】:

我正在尝试获取pwd的输出:

#!python
import os
pwd = os.system("pwd")
print (pwd)

它打印 0 是成功退出状态而不是路径。 我怎样才能获得路径?

【问题讨论】:

  • 使用subprocess.Popen,您可以将stdout/stderr 存储在变量中。
  • 我希望你明白,为了特定目的你应该使用 os.getcwd() 。

标签: python


【解决方案1】:

运行系统命令是更好地做subprocess,但如果您使用的是os不已,为什么不只是做 P>

pwd = os.getcwd()

os.getcwd() 在 Windows 和 Unix 上可用。

【讨论】:

  • 也在 MAC 上! (也像 Unix - 但以防万一......)我刚刚使用它:)
【解决方案2】:

要获取当前工作目录,请使用os.getcwd()。但总的来说,如果你想要输出和返回码:

import subprocess
PIPE = subprocess.PIPE
proc = subprocess.Popen(['pwd'], stdout=PIPE, stderr=PIPE)
out, err = proc.communicate()
errcode = proc.returncode
print(out)
print(errcode)

【讨论】:

    【解决方案3】:

    os.system 无法做到这一点,尽管os.popen 确实会为您返回该值:

    >>> import os
    >>> os.popen('pwd').read()
    '/c/Python27\n'
    

    但是subprocess 模块功能更强大,应该改为使用:

    >>> import subprocess
    >>> p = subprocess.Popen('pwd', stdout=subprocess.PIPE)
    >>> p.communicate()[0]
    '/c/Python27\n'
    

    【讨论】:

      【解决方案4】:

      当前目录完整路径:

      import os
      print os.getcwd()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-16
        • 2021-12-25
        • 2022-01-22
        • 2020-10-20
        • 1970-01-01
        • 2022-10-15
        • 1970-01-01
        • 2017-06-09
        相关资源
        最近更新 更多