【发布时间】:2010-12-05 07:05:03
【问题描述】:
我有一个从符号链接目录运行的 Python 脚本,我在其中调用 os.getcwd(),期望得到我运行它的符号链接路径。相反,它给了我“真实”的路径,在这种情况下,这没有帮助。我需要它来实际给我符号链接版本。
Python 有这方面的命令吗?
【问题讨论】:
我有一个从符号链接目录运行的 Python 脚本,我在其中调用 os.getcwd(),期望得到我运行它的符号链接路径。相反,它给了我“真实”的路径,在这种情况下,这没有帮助。我需要它来实际给我符号链接版本。
Python 有这方面的命令吗?
【问题讨论】:
解决方法:os.getenv('PWD')
【讨论】:
PWD 环境变量不会被os.chdir() 更新,因此即使根本没有符号链接,它也可能与os.getcwd() 不一致。
一般来说这是不可能的。 os.getcwd()调用getcwd(3),根据POSIX.1-2008 (IEEE Std 1003.1-2008):
路径名不得包含点或点-点或符号链接的组件。
os.getenv['PWD'] 是依赖于 shell 的,例如不能与来自 FreeBSD 的 sh 一起使用。
【讨论】: