我必须采用如下所示的文件路径:
'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)
如何通过第一条路径获得这条路径?
价值
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()
并获得预期的结果。