whj1566 发表于 2022-3-4 16:57:25

文件路径的斜杠问题

0. 下边只有一种方式不能打开文件,请问是哪一种,为什么?
>>> f = open('E:/test.txt', 'w')   # A
>>> f = open('E:\test.txt', 'w')   # B
>>> f = open('E://test.txt', 'w')# C
>>> f = open('E:\\test.txt', 'w')# D
复制代码

答:B不能打开文件。

Windows在路径名中既可以接受斜线(/)也可以接受反斜线(\),不过如果使用反斜线作为路径名的分隔符的话,要注意使用双反斜线(\\)进行转义,否则Python会将反斜线进行转义,例如(\n)看成一个换行符,(\t)看作一个制表符等。


请问大神:为什么C选项//也能打开,双正斜杠代表什么意思?

python爱好者. 发表于 2022-3-4 16:59:22

固定搭配

python爱好者. 发表于 2022-3-4 17:00:02

python爱好者. 发表于 2022-3-4 16:59
固定搭配

表示文件路劲的分隔符

isdkz 发表于 2022-3-4 17:08:50

本帖最后由 isdkz 于 2022-3-4 17:13 编辑

在 python 中打开文件对象时,会把字符串中的斜杠和反斜杠都当成路径分隔符,

多个斜杠和反斜杠连续出现它都会当成一个,

不过因为反斜杠会转义,所以得偶数个连续出现,

使用原始字符串不会转义反斜杠也可以任意数个连续出现。

f = open('E://////////test.txt', 'w')   # 斜杠可以任意多个连续出现,连续的斜杠它只会当成一个
f = open('E:\\\\test.txt', 'w')   # 反斜杠会转义,所以得偶数多个连续出现,连续的反斜杠它只会当成一个
f = open(r'E:\\\test.txt', 'w')   # 反斜杠可以任意多个连续出现,连续的反斜杠它只会当成一个

jackz007 发表于 2022-3-4 17:11:01

      在字符串中,'\' 属于特殊字符,是用来进行转义的,主要用途是表达各种不可见字符。例如,'\n' 代表换行字符,'\t' 代表 tab 字符,'\r' 代表回车字符,'\027' 代表 ASCII 编码为八进制 027 (十进制 23)的字符,'\x10' 代表 ASCII 编码为十六进制 0x10 (十进制 16)的字符。而 '\\' 是用来表达一个 '\' 字符的。

python爱好者. 发表于 2022-3-4 17:11:52

jackz007 发表于 2022-3-4 17:11
在字符串中,'\' 属于特殊字符,是用来进行转义的,主要用途是表达各种不可见字符。例如,'\n' 代表换 ...

他问的是 "/" 吧,不是反斜杠 "\"
页: [1]
查看完整版本: 文件路径的斜杠问题