【问题标题】:How to get the current working directory using python 3?如何使用 python 3 获取当前工作目录?
【发布时间】:2013-06-25 22:21:08
【问题描述】:

当我在 IDLE 中运行以下脚本时

import os
print(os.getcwd())

我得到的输出为

D:\testtool

但是当我从 cmd 提示符运行时,我得到了

c:\Python33>python D:\testtool\current_dir.py
c:\Python33

如何获得与使用 IDLE 相同的结果?

【问题讨论】:

    标签: python python-3.x working-directory file-location


    【解决方案1】:

    似乎 IDLE 将其当前工作目录更改为执行脚本的位置,而使用 cmd 运行脚本时不会这样做,它会保持 CWD 不变。

    要将当前工作目录更改为包含您的脚本的目录,您可以使用:

    import os
    os.chdir(os.path.dirname(__file__))
    print(os.getcwd())
    

    __file__ 变量仅在您从文件执行脚本时可用,并且它包含文件的路径。更多信息在这里:Python __file__ attribute absolute or relative?

    【讨论】:

    • 我建议不要更改目录,因为如果用户希望从不同的目录运行脚本,您可能会得到不确定的结果。
    【解决方案2】:

    使用 pathlib 可以获取当前文件所在的文件夹。 __file__ 是加载模块的文件的路径名。 参考:docs

    import pathlib
    
    current_dir = pathlib.Path(__file__).parent
    current_file = pathlib.Path(__file__)
    

    文档参考:link

    【讨论】:

    • 当前文件位置和当前工作目录不能不一样吗?
    【解决方案3】:

    Python 的默认 pathlib 库提供 cwd,如下所示:

    import pathlib
    
    pathlib.Path.cwd()
    

    【讨论】:

    • 太好了,我正在寻找 pathlib 库
    猜你喜欢
    • 2013-11-18
    • 2016-04-05
    • 2013-05-14
    • 2020-06-10
    • 2021-12-02
    • 2011-06-19
    • 2014-03-10
    • 2021-01-18
    相关资源
    最近更新 更多