我正在編寫一個(gè) cli 工具,需要一些路徑作為輸入。我正在用 python 編寫這個(gè)工具,并且不想使用 3.6 以下的 python 解釋器。使用包pathlib似乎是處理 python 中的路徑時(shí)的現(xiàn)代方法。所以如果可能的話我想離開os并os.path留下來。看起來 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ì)路徑開頭的每個(gè)路徑并自動(dòng)擴(kuò)展~到用戶主目錄?
1 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
答案很簡單,.expanduser()在 Path 對(duì)象上使用而不是.absolute(),它會(huì)將 ~ 替換為運(yùn)行腳本的用戶的主目錄,僅當(dāng) ~ 位于開頭時(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
提交
取消