刚接手批量整理本地数据的活,excel打开大体积csv直接卡死,硬扛半天没用,最后老老实实琢磨python如何读取csv,全程徒手试错,没套用任何成套教程模板,摸出了最适配新手的实操办法。
最开始压根不知道有内置工具。
一开始傻乎乎去装第三方库,跟风搜了一堆复杂的pandas读取代码,复制粘贴运行后直接报错,要么是路径识别失败,要么是中文乱码,明明代码看着和教程一模一样,跑出来的结果就是空数据表,反复改参数、重启编辑器,折腾了快一小时,完全没搞懂问题出在哪,后来才反应过来,新手根本没必要一上来就用pandas,python自带的csv模块就足够搞定基础读取,完全不用额外安装依赖,省去很多兼容问题和安装报错的麻烦,对零基础新手极其友好。
很多人都会忽略文件存放位置的问题,这也是我当时卡最久的点。
把编写好的py脚本文件,和需要读取的csv文件放在同一个文件夹里,就能直接用相对路径读取,不用输入一长串复杂的绝对路径。文件路径不统一的话,不管写多少读取代码,程序都找不到目标文件,只会抛出文件不存在的报错,当时还傻傻以为是代码语法错了,逐行核对了三四遍,浪费了大把没用的时间。
改完路径之后,第一次顺利跑通了基础读取代码。
调用内置csv模块的reader方法,打开文件时必须标注编码格式,我习惯性用encoding='utf-8',之前所有的中文乱码问题,就是因为偷懒没加这行参数。本地导出的csv文件编码不固定,有的是gbk格式,有的是utf-8格式,不手动匹配的话,读取出来的中文全是杂乱符号,根本没法用。读取完成后,用循环语句遍历文件内容,每一行数据都会自动生成列表格式,每个单元格的内容都是独立元素,可以直接调取使用,不用额外做格式转换,简单的数据筛选、核对工作完全能搞定。
原生csv模块的读取方式也有局限,就是没办法直接通过表头名称调取整列数据,只能靠数字索引定位列的位置。反正日常简单的数据处理需求,这个短板完全可以忽略,相比pandas庞大的安装包和加载速度,原生模块启动更快、运行更轻便,不用适配各种版本冲突。
试过几次编码切换和路径调整后,终于能稳定读取各类本地csv文件,没有任何报错,数据完整度也没问题。整个实操过程没有复杂逻辑,所有难点全是新手最容易踩的基础小坑,避开之后读取操作就变得特别简单。
关掉代码编辑器的时候,桌面还留着刚才截的报错日志截图,懒得清理,就那么静置在屏幕角落。