You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python pathlib获取保留符号链接的当前工作目录

如何使用Python pathlib获取保留符号链接的当前工作目录

这个问题我之前也碰到过,确实pathlib.Path.cwd()默认会自动解析符号链接,返回真实的物理路径,和shell里显示的当前目录不一致,挺闹心的。不过有几个靠谱的办法可以解决,不用手动硬编码路径:

  • 最通用的跨平台方案:结合os.getcwd()和pathlib
    Python的os模块里的getcwd()函数会返回shell中显示的当前工作目录,它不会解析符号链接,完全保留你实际进入的路径。我们只需要把它的结果转成Path对象,就能继续使用pathlib的所有便捷方法了:

    from pathlib import Path
    import os
    
    current_dir = Path(os.getcwd())
    print(current_dir)  # 输出带符号链接的当前工作目录,比如"/home/me/symlink/dir"
    

    这个方法在Linux、Unix、Windows系统上都能正常工作,是最稳妥的选择。

  • Linux/Unix下的备选方案:读取环境变量PWD
    在类Unix系统中,shell会维护一个PWD环境变量,它保存的就是你当前所在的路径(保留符号链接)。我们可以读取这个变量,同时加上os.getcwd()作为 fallback(避免进程不是从shell启动导致PWD不存在的情况):

    from pathlib import Path
    import os
    
    current_dir = Path(os.environ.get("PWD", os.getcwd()))
    print(current_dir)
    

简单说下原因:Path.cwd()内部在获取路径后默认做了路径解析操作,而os.getcwd()直接调用系统的getcwd()接口,会返回用户实际导航进入的路径,自然就保留了符号链接。

备注:内容来源于stack exchange,提问作者matleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:29:30