介绍python中最常见的文件操作方法,以及如何读写csv文件;最后使用 StringIO 将数据写入内存
更新于 2021-11-14
打开文件
打开文件直接使用open
函数,指定文件路径即可,该函数的底层是调用操作系统接口:
1 | f = open("/tmp/a.txt", mode='r', encoding='utf-8') |
更推荐的方式是使用with
方式:
1 | with open("/tmp/a.txt", mode='r', encoding='utf-8') as f: |
f
为文件句柄,对文件句柄的任何操作都是对文件的操作;encoding
可以省略,mode='r'
也可以直接写成类似r
的方式,标识打开文件的模式;
使用with
打开文件可以不需要关闭文件句柄,并且一个语句可以操作多个文件句柄,例如:
1 | with open("/tmp/a.txt", mode='r', encoding='utf-8') as f1, \ |
关闭文件
关闭文件直接调用文件句柄的close()
方式即可:
1 | f = open("/tmp/a.txt", mode='r', encoding='utf-8') |
打开文件后好的习惯应该是都有一个关闭文件句柄的操作
指定打开文件的模式
不管是直接open()
方式还是with
方式,都需要有打开文件的模式即mode
,有如下的一些模式可选择:
r
:只读(文件必须存在,不存在则报错)w
:只写(不可读,文件不存在则创建,存在则会清空原文件内容)a
:追加(不可读,文件不存在则创建,存在只会追加内容到原文件)rb
:以二进制读取(对于非文本类内容)wb
:以二进制写入(对于非文本类内容)ab
:以二进制追加(对于非文本类内容)r+
:读写模式
r+
模式中,文件指针开始位于文件头部,如果先写后读,那么文件会从还是覆盖原文件内容,直到写内容完毕
csv文件读写
csv文件写入
1 | import csv |
csv文件读取
1 | import csv |
内存数据读写
读写字符串数据
1 | from io import StringIO |
读写二进制数据
1 | from io import BytesIO |