我正在編寫(xiě)一個(gè) cli 工具,需要一些路徑作為輸入。我正在用 python 編寫(xiě)這個(gè)工具,并且不想使用 3.6 以下的 python 解釋器。使用包pathlib似乎是處理 python 中的路徑時(shí)的現(xiàn)代方法。所以如果可能的話我想離開(kāi)os并os.path留下來(lái)??雌饋?lái) pathlib 將路徑解釋~/test/為當(dāng)前工作目錄的相對(duì)路徑,下面的代碼顯示了它import pathlibtest_path = pathlib.Path('~/test')absolute_path = test_path.absolute()print(f"{str(test_path):>31}\n{str(absolute_path):>31}")# output:# ~/test# /home/myUser/~/test如何使用 pathlib 識(shí)別以~絕對(duì)路徑開(kāi)頭的每個(gè)路徑并自動(dòng)擴(kuò)展~到用戶(hù)主目錄?
1 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
答案很簡(jiǎn)單,.expanduser()在 Path 對(duì)象上使用而不是.absolute(),它會(huì)將 ~ 替換為運(yùn)行腳本的用戶(hù)的主目錄,僅當(dāng) ~ 位于開(kāi)頭時(shí),結(jié)果也是絕對(duì)路徑:
import pathlib
test_path = pathlib.Path('~/test')
absolute_path = test_path.expanduser()
# If ~ is somewhere in the middle of the path, use .resolve() to get an absolute path.
print(f"{str(test_path):>31}\n{str(absolute_path):>31}")
# output:
# ~/test
# /home/myUser/test
添加回答
舉報(bào)
0/150
提交
取消