jiafan 发表于 2020-5-11 20:21:10

14讲第二题 小白哭了,\t 和 \ 是一个东西吗,题目里没\t 为什么解释的那里提到了

2. file1 = open('C:\windows\temp\readme.txt', 'r') 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?

会报错是因为在字符串中,我们约定“\t”和“\r”分别表示“横向制表符(TAB)”和“回车符”(详见:http://bbs.fishc.com/thread-92997-1-1.html),因此并不会按照我们计划的路径去打开文件。
   
Python 为我们铺好了解决的道路,只需要使用原始字符串操作符(R或r)即可:


答案:file1 = open(r'C:\windows\temp\readme.txt', 'r')

永恒的蓝色梦想 发表于 2020-5-11 22:13:57

file1 = open('C:\windows\temp\readme.txt', 'r')

txxcat 发表于 2020-5-11 22:42:30

除了原始字符串操作符,还可以这样:
file1 = open('C:\\windows\\temp\\readme.txt', 'r')
或者这样:
file1 = open('C:/windows/temp/readme.txt', 'r')

jiafan 发表于 2020-5-12 18:08:35

永恒的蓝色梦想 发表于 2020-5-11 22:13


这个是什么意思?
1.想问下 \和 \t有区别吗。。
2.前面加了 r 是在全部\ 加一个\的意思吗

jiafan 发表于 2020-5-12 18:10:09

txxcat 发表于 2020-5-11 22:42
除了原始字符串操作符,还可以这样:

或者这样:

试了下 好像不行

txxcat 发表于 2020-5-12 18:35:48

jiafan 发表于 2020-5-12 18:10
试了下 好像不行

'\'是转义符,和一些字符搭配有特定含义,比如'\t'是制表符,'\r'是回车,等等,你可以查查这方面的资料,其实'\\'也是种特殊的表达,就是'\'本身,所以字符串中'\\'会被系统识别为'\',另外,在python中,路径名用'/'取代'\'也是可以识别的。如果不行,应该是你输入有误,比如是不是在前面加了r?或者路径名文件名不正确?最好把你试验的代码和报错信息传上来看看。

jiafan 发表于 2020-5-12 18:45:57

txxcat 发表于 2020-5-12 18:35
'\'是转义符,和一些字符搭配有特定含义,比如'\t'是制表符,'\r'是回车,等等,你可以查查这方面的资料 ...

谢谢你还有个小问题 前面加r 是转义\的意思吗

txxcat 发表于 2020-5-12 18:57:25

jiafan 发表于 2020-5-12 18:45
谢谢你还有个小问题 前面加r 是转义\的意思吗

r的作用是指定字符串里所有的字符都是原始字符,不存在转义或者特殊字符,其实就是禁止了'\'的转义功能。

jiafan 发表于 2020-5-12 19:00:16

txxcat 发表于 2020-5-12 18:57
r的作用是指定字符串里所有的字符都是原始字符,不存在转义或者特殊字符,其实就是禁止了'\'的转义功能。

谢谢!!!
页: [1]
查看完整版本: 14讲第二题 小白哭了,\t 和 \ 是一个东西吗,题目里没\t 为什么解释的那里提到了