我必须输入一个看起来像这样的文件路径:
'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)
如何通过采用第一条路径来获得这条路径?
答案 0 :(得分: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()
,以获得预期的结果。