在MacOS上使用pathlib.Path正确转义Windows路径

2024-04-25 22:34:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在MacOS上,我正在扫描网络驱动器,其中包含多个目录,这些目录是从Windows卷开始的硬盘驱动器的完整副本

例如:

file_path = pathlib.Path("/Volumes/fotos/hd2/Old 160gig HD/Pictures/Location/Location Pictures/100MEDIA/Dalan\'s Desert")

如果使用Python的subprocess运行类似subprocess.run(["open", file_path])的程序,则会出现以下错误:

The file /Volumes/fotos/hd2/Old 160gig HD/Pictures/Location/Location Pictures/100MEDIA/Dalan\'s Desert does not exist

如果我注释掉撇号和/或空格,我会获得不同的成功,但它似乎不一致?我也尝试过用shell=True来解决这个问题,但似乎找不到一个100%有效的解决方案

Python中处理路径的规范方法是什么,以便它们总是在MacOS上下文中工作


Tags: path网络目录locationmacosoldfilesubprocess
1条回答
网友
1楼 · 发布于 2024-04-25 22:34:54

我们可以参考docs;一开始的第一个image也很有帮助

In [1]: from pathlib import Path, PureWindowsPath, PurePosixPath                                                                                                                                                                                            

In [2]: PureWindowsPath(Path("/Volumes/fotos/hd2/Old 160gig HD/Pictures/Location/Location Pictures/100MEDIA/Dalan\'s Desert"))                                                                                                                              
Out[2]: PureWindowsPath("/Volumes/fotos/hd2/Old 160gig HD/Pictures/Location/Location Pictures/100MEDIA/Dalan's Desert")

In [3]: PurePosixPath(Path("/Volumes/fotos/hd2/Old 160gig HD/Pictures/Location/Location Pictures/100MEDIA/Dalan\'s Desert"))                                                                                                                                
Out[3]: PurePosixPath("/Volumes/fotos/hd2/Old 160gig HD/Pictures/Location/Location Pictures/100MEDIA/Dalan's Desert")

相关问题 更多 >