Python 文件IO:Txt、Json、Pickle 文件的读取与写入
文本数据/TXT
读取
使用 open()
函数配合 rt
模式读取文本文件内容:
备注1:
rt
模式中的t
表示对换行符进行智能转换,在 UNIX 和 Windows 中换行符的识别是不同的,对于 UNIX 换行符为\n
,而 Windows 为\r\n
。默认情况下,Python 工作在“通用型换行符”模式下,可以将所有常见的换行格式识别出来。加入t
参数,在读取时,如果换行符为\r\n
,会将其转换为\n
字符。同理,在写入时会将换行符\n
转换为当前系统默认的换行符。备注2:也可以给
open()
函数提供一个newline=''
参数对换行符进行手动操作。
1 | # 将整个文件读取为一个字符串 |
备注:使用
with
语句,会为使用的文件创建一个上下文环境,当程序的控制流程离开with
语句块后,文件将自动关闭。如果不使用with
语句,需记得手动关闭文件:f.close()
。
举例:将 .txt
文件内容读取为一个 python 列表,列表元素按顺序依次为文本文件每一行的内容:
1 | def read_txt(txt_path): |
写入
与读取类似,使用 wt
模式即可。
1 | # 将文本内容写入文件 |
JSON文件
备注1:JSON 编码支持的基本类型有 None、bool、int、float 和 str,同时也包含由这些基本类型组成的列表以及字典。对于字典,JSON 会假设所有键(key)都是字符串(字典中任何非字符串的键在编码时都会被转换为字符串)。一般来说,把 JSON 最顶层对象定义为字典是一种标准做法。
备注2:JSON 编码格式与 Python 语法基本相同,有几处细微区别,如
True
会被映射为true
,False
会被映射为false
,None
会被映射为null
。
以下为常用的读取和写入 json
文件的函数:
1 | import json |
备注:在写入
json
文件时,如果不需要格式化,可将最后一行改为json.dump(obj)
。