鱼C论坛

 找回密码
 立即注册
查看: 1935|回复: 2

[已解决]简单的路径问题

[复制链接]
发表于 2023-5-9 23:43:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问下面这个代码中,为什么盘符C显示的不一样呢?为什么有的后面是双斜杠,有的后面是单斜杠呢??
>>> Path().resolve()
WindowsPath('C:/Users/Lenovo/AppData/Local/Programs/Python/Python38')
>>> Path().resolve().parts
('C:\\', 'Users', 'Lenovo', 'AppData', 'Local', 'Programs', 'Python', 'Python38')
>>> 
最佳答案
2023-5-10 07:03:18
在Windows系统中,路径分隔符默认为反斜杠`\`。但是Python中,反斜杠本身也是用来转义字符的,因此如果要使用反斜杠作为路径分隔符,需要进行双反斜杠转义,即两个反斜杠`\\`。

在上述代码中,`Path().resolve()`会返回一个绝对路径对象,即包含了这个文件所在的完整路径。在Windows系统中,Python自动将路径分隔符进行了转换,显示为正斜杠`/`。所以`C:/Users/Lenovo/AppData/Local/Programs/Python/Python38`实际上是等价于`C:\Users\Lenovo\AppData\Local\Programs\Python\Python38`的。

而`Path().resolve().parts`则返回了路径中每一级文件夹的名称,这个列表的元素使用了操作系统默认的路径分隔符反斜杠,所以结果中出现的`\\`表示单个反斜杠,而`C:\\`则表示盘符C的根目录。
有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-9 23:44:11 | 显示全部楼层
这是因为在Windows系统中,路径可以使用单斜杠或双斜杠来表示。在Python中,使用Path库来表示文件路径时,它会自动将单斜杠转换为双斜杠,以便与Windows系统兼容。但是在输出路径时,它会将双斜杠转换为单斜杠,以便更易读。因此,在输出路径时,C盘的双斜杠被转换为了单斜杠。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-10 07:03:18 | 显示全部楼层    本楼为最佳答案   
在Windows系统中,路径分隔符默认为反斜杠`\`。但是Python中,反斜杠本身也是用来转义字符的,因此如果要使用反斜杠作为路径分隔符,需要进行双反斜杠转义,即两个反斜杠`\\`。

在上述代码中,`Path().resolve()`会返回一个绝对路径对象,即包含了这个文件所在的完整路径。在Windows系统中,Python自动将路径分隔符进行了转换,显示为正斜杠`/`。所以`C:/Users/Lenovo/AppData/Local/Programs/Python/Python38`实际上是等价于`C:\Users\Lenovo\AppData\Local\Programs\Python\Python38`的。

而`Path().resolve().parts`则返回了路径中每一级文件夹的名称,这个列表的元素使用了操作系统默认的路径分隔符反斜杠,所以结果中出现的`\\`表示单个反斜杠,而`C:\\`则表示盘符C的根目录。
有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表