python怎么读取文件:基础open函数可原生读取本地文本文件
半夜赶课程作业的时候,急着处理本地txt数据,当时迫切需要搞懂python怎么读取文件,网上一堆复杂的高阶方法,看得人眼花缭乱,完全不适合临时救急,只能自己一点点敲代码试最简的实操方式。
最开始完全没思路,直接无脑写了read()读取代码,运行页面直接弹出报错弹窗,反复检查代码拼写,文件名、符号全都没出错,折腾了快二十分钟,始终找不到问题在哪。后来才反应过来,python读取文件不能直接调用读取方法,必须先建立文件连接,没有打开文件的前置操作,程序根本定位不到本地文件,这是新手最容易犯的低级错误。
裸写读取代码,百分百报错。
摸清基础逻辑后,试着用python原生的open函数操作,这是不用安装任何插件、不用导入第三方库的最简方式,适配所有基础文本文件读取场景。当时直接设置了只读模式r,这个模式只会读取文件内容,不会对原文件做任何修改,就算代码写错,也不用担心本地文件数据被篡改,安全性很高,特别适合新手上手操作。
本以为写完open打开文件的代码就能成功读取内容,结果运行之后控制台一片空白,没有任何数据输出,白白忙活半天。折腾好久才搞明白,open函数的作用只是打开并连接文件,只是搭建了程序和文件的通道,不会主动提取文件内容,必须搭配read()方法,才能把文件里的文字、数字、符号全部读取出来,之后再用打印语句,才能在控制台看到完整内容,这一步是很多简易教程省略的关键细节。
实操的时候还踩了个隐性的坑,最开始写完代码运行成功后,直接关闭编辑器,完全忘了关闭文件通道。反正小文件读取的时候没什么异常,后来测试几兆的大文本文件,频繁运行代码后,电脑变得特别卡顿,后台堆积了大量未关闭的文件进程,占用了大量内存,甚至出现了程序闪退的情况。
之后就一直用with语句嵌套open函数的写法,算是临时摸索出的最优解。这个写法最大的好处就是不用手动写关闭文件的代码,代码执行结束后,系统会自动关闭文件连接,彻底杜绝内存占用、进程堆积的问题,代码行数更少,逻辑也更清晰,临时写作业、做简单数据处理完全够用。
读取带中文的文本文件时,还遇到过乱码的问题,屏幕上跳出一堆杂乱无章的字符,完全无法识别。反复测试后发现,只要在open函数里加上encoding="utf-8"的编码参数,就能完美适配中文内容,不管是纯中文还是中英文混合的文件,都能正常读取显示,没有任何乱码瑕疵。
凌晨两点多,调试完最后一遍代码,看着控制台完整输出的文件内容,随手保存了py文件,把电脑屏幕按黑,靠着椅背放空了几秒,什么都不想,只觉得终于能交差了。