第一次读取不到文件,是因为我看文件夹里面桌面文件的路径是这样的:
所以把文件的路径写成下面这样,于是读取不到文件
f = open('C:\desktop\snow.txt','r',encoding = 'UTF-8')
print(f'读取到的内容是{f.read()}')
后来去查看文件的属性,发现桌面的文件的路径其实是这样的:
然后我一时激动,只把这个路径复制了过去,一直报错PermissionError: [Errno 13] Permission denied:
问了chatgpt,才发现是自己写错了(笑)
然而,新的问题又出现,我修改过的代码:
f = open('C:\Users\wangx\Desktop\snow.TXT' , 'r' , encoding = 'UTF-8')
print(f'读取到的内容是{f.read()}')
又报了错: f = open('C:\Users\wangx\Desktop\snow.TXT' , 'r' , encoding = 'UTF-8')
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
我又去问了chatgpt,它说“这个错误是由于字符串中的反斜杠\
被解释为转义字符导致的。在Python中,反斜杠\
被用作转义字符,因此在字符串中出现\
时需要进行特殊处理。”
为了解决这个问题,你可以采取以下几种方式之一:
使用原始字符串(Raw string):在字符串前加上字母r
,将其标记为原始字符串。这样,反斜杠\
将不会被解释为转义字符。
f = open(r'C:\Users\wangx\Desktop\snow.txt', 'r', encoding='UTF-8')
双反斜杠转义:将反斜杠\
替换为双反斜杠\\
,这样\
就会被正确地解释为普通字符。
f = open('C:\\Users\\wangx\\Desktop\\snow.txt', 'r', encoding='UTF-8')
使用正斜杠:将反斜杠\
替换为正斜杠/
。在大多数情况下,正斜杠在文件路径中也是可以正常使用的。
f = open('C:/Users/wangx/Desktop/snow.txt', 'r', encoding='UTF-8')
我试了试,三种方法都合适。