簡體   English   中英

使用 pathlib 的與操作系統無關的相對路徑

[英]OS-agnostic relative path using pathlib

我有一個字符串變量dirname ,其中包含帶有正確斜杠的路徑('/' 如果在 Linux 上,'\' 如果在 Windows 上)。

而且我有一個可能包含錯誤斜杠的相對文件名字符串。

如何使用 pathlib 加入它們並為運行腳本的操作系統獲取正確的完整文件名?

例如在 Linux 上運行:

dirname = '/users/myname/dir1'
filename1 = '..\\dir2\\file.txt'
filename2 = '../dir2/file.txt'

我想用filename1filename2加入dirname ,並在這兩種情況下都獲取/users/myname/dir2/file.txt

在 Windows 上運行:

dirname = 'C:\\dir1'
filename1 = '..\\dir2\\file.txt'
filename2 = '../dir2/file.txt'

我想用filename1filename2加入dirname ,並在兩種情況下都得到C:\\dir2\\file.txt

一個潛在的解決方案是只存儲路徑的組件:

import pathlib

path_1 = pathlib.Path(r"/users/myname/dir1")
print(path_1)

path_list = ["dir2", "file.txt"]

path_2 = pathlib.Path(*path_list)
print(path_2)

res = path_1.joinpath(path_2)
print(res)

Output:

/users/myname/dir1
dir2/file.txt
/users/myname/dir1/dir2/file.txt

不幸的是,這並不完美,文件路徑似乎會變得非常混亂。 例如,參見python 中路徑的跨平台拆分 這個答案很簡潔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM