我知道这是个微妙的问题,但我希望你能容忍我一会儿。在
假设/tmp/dir
是/home/user/some/dir
的符号链接。还假设您当前的工作目录是/tmp/dir
。在
甚至扩展.
似乎也不可能,因为os.getcwd()
返回{../dir/../dir/subdir
,.././././dir/foo
,等等
所以我的问题是:有没有可靠的函数可以对相对路径进行路径扩展,但不遵循可能存在于相对路径中的符号链接。以../dir/../dir/subdir
为例,我希望得到/tmp/dir/subdir
,而不是{
为了避免得到我不想要的东西,答案不是os.path.abspath
,os.path.realpath
,os.path.expanduser
,或者{
不知道你在找什么,但是。。。您可以编写一个函数,从相对路径和当前工作目录生成“逻辑”完整路径,然后检查生成的路径是否确实存在于系统中。该函数可能看起来像:
似乎you're not the first注意到了^{} 的这种奇怪行为。在
Linux手册页中没有关于它的内容,但是a similar page说。。。在
…尽管没有解释为什么它会解析符号链接。在
因此,从技术上讲,您不能拥有当前的工作目录
/tmp/dir
,即使您的shell另有声明。在但是,您可以利用shell内置的
cd
命令将环境变量PWD
设置为您输入的值,因此您可以这样做。。。在…尽管在进程不是从shell启动的情况下,它可能会失败。在
相关问题 更多 >
编程相关推荐