我正在編寫一個 cli 工具,需要一些路徑作為輸入。我正在用 python 編寫這個工具,并且不想使用 3.6 以下的 python 解釋器。使用包pathlib似乎是處理 python 中的路徑時的現代方法。所以如果可能的話我想離開os并os.path留下來??雌饋?pathlib 將路徑解釋~/test/為當前工作目錄的相對路徑,下面的代碼顯示了它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 識別以~絕對路徑開頭的每個路徑并自動擴展~到用戶主目錄?
1 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
答案很簡單,.expanduser()在 Path 對象上使用而不是.absolute(),它會將 ~ 替換為運行腳本的用戶的主目錄,僅當 ~ 位于開頭時,結果也是絕對路徑:
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
添加回答
舉報
0/150
提交
取消