大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。
本文主要介绍了Python文件操作(json、csv、tsv、excel、pickle文件序列化),希望能对学习Python的同学们有所帮助。
文章目录
- 1. 文件类型
-
- 1.1 曾经遇到的坑
- 1.2 文本文件 vs. 二进制文件
- 1.3 Linux file命令
- 2. 文件读写
-
- 2.1 普通文本文件
-
- 2.1.1 普通文本的读取
- 2.1.1.1 全文读取
- 2.1.1.2 逐行读取
- 2.1.2 普通文本的写入
- 2.2 json文件
-
- 2.2.1 原生json库
- 2.2.2 pandas.read_json
-
- 2.2.2.1 ValueError: Trailing data错误解决方案
- 2.2.2.2 从第i行开始读取
- 2.3 csv、tsv等格式文件
-
- 2.3.1 输入是字符串时如何导入
- 2.3.2 分隔符sep
- 2.3.3 表头header
- 2.3.4 分批读入
- 2.4 excel文件
- 2.5 pickle文件序列化
-
- 2.5.1 UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xdb in position 2: ordinal not in range(128)
- 2.6 读取大文件
- 2.7 YAML文件
-
- 3. 文件路径迭代
-
- 4. 对输入文件名(argv)进行处理
- 5. 文件内容搜索
-
1. 文件类型
1.1 曾经遇到的坑
对于初学者来说,非常容易犯的一个错误就是认为后缀名等同于实际的文件类型。虽然大部分的确如此,但是偶尔遇到一两次(我曾经遇到过把xlsx文件后缀名修改成了csv)也会耗费不少的时间去排查程序中的bug,因为如果没有遇到过,可能就很难想到问题是出在这里。
1.2 文本文件 vs. 二进制文件
简单的说,通过代码编辑器如sublime打开后,如果设置的编码方式是正确的,得到的就是文本内容;反之,通过任何编码方式得到的都是乱码则就是二进制文件。
常用的二进制文件类型如office文档(doc、docx、xls、xlsx、ppt、pptx)、压