PermissionError: [Errno 13] Permission denied:

第一次读取不到文件,是因为我看文件夹里面桌面文件的路径是这样的:

 

所以把文件的路径写成下面这样,于是读取不到文件

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中,反斜杠\被用作转义字符,因此在字符串中出现\时需要进行特殊处理。”

为了解决这个问题,你可以采取以下几种方式之一:

  1. 使用原始字符串(Raw string):在字符串前加上字母r,将其标记为原始字符串。这样,反斜杠\将不会被解释为转义字符。

    f = open(r'C:\Users\wangx\Desktop\snow.txt', 'r', encoding='UTF-8')
  2. 双反斜杠转义:将反斜杠\替换为双反斜杠\\,这样\就会被正确地解释为普通字符。

    f = open('C:\\Users\\wangx\\Desktop\\snow.txt', 'r', encoding='UTF-8')
  3. 使用正斜杠:将反斜杠\替换为正斜杠/。在大多数情况下,正斜杠在文件路径中也是可以正常使用的。

    f = open('C:/Users/wangx/Desktop/snow.txt', 'r', encoding='UTF-8')

    我试了试,三种方法都合适。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值