python报错解决:open()函数找不到文件,以及编码问题的解决办法
admin
2024-05-11 22:01:35

学习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', '美丽']

相关内容

热门资讯

老师傅教我红烧鱼鱼皮不破的秘诀... 你是否曾为煮鱼时鱼皮破损而感到烦恼?尤其是在家庭聚会上,精心准备的红烧鱼却因为鱼皮粘锅而变得不堪入目...
韭菜炒蛋的家常做法 ## 家常的辩证法:从韭菜炒蛋看生活的朴素智慧 韭菜炒蛋,一道再平常不过的家常菜,金黄与翠绿的交响,...
鸡蓉饺子的家常做法 ## 一碗鸡蓉饺子的温情:家常美食中的生活哲学 在北方寒冷的冬夜,一碗热气腾腾的鸡蓉饺子总能温暖游子...
家常炒土豆片的做法 ## 家常炒土豆片:平凡食材里的生活哲学 厨房里,一颗其貌不扬的土豆正躺在案板上,黄褐色的表皮还沾着...
香葱煎饼的制作方法 ## 香葱煎饼:一勺油香里的家传滋味 清晨的第一缕阳光斜斜地穿过厨房的纱窗,铁锅上腾起的热气裹挟着葱...