无法在Pathlib中转换路径

问题描述 投票:-1回答:1

我必须采用如下所示的文件路径:

'C:/Users/xxx/Desktop/test_folder'

它作为字符串存储到变量中,因此:

path_intake = 'C:/Users/xxx/Desktop/test_folder'

我想把这条路径分配给我

p = Path(path_intake)

但是,当p接纳path_intake时,它将改变路径:

'C:\Users\xxx\Desktop\test_folder'

这不是我想要的,因为.rglob只能读取这样的路径:

p = Path(C:/Users/xxx/Desktop/test_folder)

如何通过第一条路径获得这条路径?

python python-3.7 pathlib
1个回答
0
投票

价值

C:/Users/xxx/Desktop/test_folder

不是规范的Windows路径字符串。众所周知,Windows使用反斜杠。因此,如果您提供/pathlib会将路径转换为您的平台的规范路径字符串,这是

C:\Users\xxx\Desktop\test_folder

但是两个Path对象是相同的,因为你会很快看到你是否这样做:

>>> p = pathlib.Path(r"C:\Users\xxx\Desktop\test_folder")     
>>> p2 = pathlib.Path(r"C:/Users/xxx/Desktop/test_folder")     
>>> p == p2     
True

当你说“.rglob只能读取这样的路径:C:/Users/xxx/Desktop/test_folder”时,你就不正确了。为了证明这一点,这样做:

>>> list(p.rglob("*.txt")) == list(p2.rglob("*.txt"))
True

Path对象是相同的,你可以在任何一个上调用.rglob()并获得预期的结果。

© www.soinside.com 2019 - 2024. All rights reserved.