python报错解决:open()函数找不到文件,以及编码问题的解决办法

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

学习python时出现了下面几个问题
学习环境

  • 使用的编辑器vscode
  • a.txt中的内容包含中文

就下面一段简单的代码连续报错花了我1个小时解决

file=open('a.txt','r')
print(file.readlines())
file.close()

问题1找不见a.txt这个文件

明明我在当前目录下已经创建了a.txt但是就是无法读取查资料发现

在使用open()函数时明明txt文件和py文件在同一个目录下如果使用相对路径来打开的话可以直接在open函数中使用txt文件名可是在vscode中确一直报错因为vscode的当前路径可能并不是这个py文件的路径只有vscode的当前路径和py路径一致时才可以直接使用txt文件名来打开

解决方法

  • 绝对路径来打开txt文件
  • 不要用vscode打开用pycharm打开

需要注意的是绝对路径的写法
在windows系统中'D:\code\python\03.module\a.txt'路径要使用下面的写法

'D:\\code\\python\\03.module\\a.txt'    #使用转义字符
'D:/code/python/03.module/a.txt'    	#使用反斜杠'/'
r'D:\code\python\03.module\a.txt'  	 	#前面加一个r表示按原字符处理不需要转义

问题2编码问题报错

UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence

如果a.txt中包含中文则必须指明编码。

解决之后的代码

#相对路径
file=open('a.txt','r',encoding='UTF-8')
print(file.readlines())
file.close()

#绝对路径
file=open(r'D:\code\python\03.module\a.txt','r',encoding='UTF-8')
print(file.readlines())
file.close()
————————————————————————————————————————————————————
运行结果
['中国\n', '美丽']
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python