這是一個微妙的問題,我知道,但我希望你能忍受我一會兒。展開一個相對路徑,但不遵循Python中路徑中的任何符號鏈接
假設/tmp/dir
是符號鏈接/home/user/some/dir
。假設你的當前工作目錄是/tmp/dir
。
即使擴大像.
似乎並不可能,因爲os.getcwd()
回報/home/user/some/dir
代替/tmp/dir
,這是什麼pwd
命令返回。相對目錄,也可以../dir/../dir/subdir
,.././././dir/foo
等
所以我的問題:是否有做了相對路徑的路徑擴展,但並不意味着可以在相對路徑存在的符號鏈接任何可靠的功能。例如,在../dir/../dir/subdir
的情況下,我想獲得/tmp/dir/subdir
而不是/home/user/some/dir/subdir
。
只是爲了避免得到我不想要的東西,答案不是os.path.abspath
,os.path.realpath
,os.path.expanduser
或os.path.relpath
。
你確定,你沒有通過'os.path.realpath(os.path。expanduser('../ dir /../ dir/subdir'))' – podshumok
@podshumok然後你會得到'/ home/user/some/dir/subdir',這就是我不想得到的。 – OTZ
奇怪。如果我設置了這些確切的條件,即使我在'/ tmp/dir'中,'os.getcwd()'實際上也會返回'/ home/user/some/dir'。不知道它是否重要,但可能值得指定使用哪個Python版本以防萬一它改變。 – Aya