学习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中包含中文,则必须指明编码。文章来源:https://www.toymoban.com/news/detail-410709.html
解决之后的代码:文章来源地址https://www.toymoban.com/news/detail-410709.html
#相对路径
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', '美丽']
到了这里,关于python报错解决:open()函数找不到文件,以及编码问题的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!