TXT 格式
txt读取
设定 data.txt 一行为一条样本
f. read() 或 f.readlines() 读出均为str格式。
其中
- f.read()读全部数据为一个str
- f.readlines将数据一条一条读成list
以下两种代码写法等价
with open("data.txt", "r") as f:
data = f.readlines()
with open("data.txt", "r") as f:
data = []
for line in f:
data.append(line)
注意:
- 因读出为str格式,因此处理文本数据较为方便
- f为迭代器, 但 f.read(), f.readlines()均会将数据全部读进内存,因此需谨慎使用。
txt写入
# data为上段代码读取数据
with open("data.txt", "w") as f:
for line in data:
f.write("{}\n".format(line))
json格式
json格式多用于不规则数据的存储
json读写主要由 json.dump, json.dump, json.load, json.loads组成
准确的说,
- json.dump和json.load可直接写入或读取[{dict1}, {dict2},...] 格式的data.json文件
- json.dumps 和 json.loads只涉及 str和dict的转换
不参与文件的读写 - json.dump / json.load由于是一整个写入或读入。
因此data.json为[dict1, dict2, ...]格式,实质是个大的list - json.dumps 一般与 f.write连用,达到逐行写入的效果。
因此一行为一个dict, 不存在大的list
json写入
import json
# data 为 list
with open("data.json", "w") as f:
json.dump(data, f, ensure_ascii=False, indent=True)
- json.dump可一下写入全部数据, 数据表现形式为list, 读取只能由json.load读取
- python默认unicode, 文本为中文是ensure_ascii=False
-
indent会自动换行让文件可读性更好
写入数据格式如下:
json_dump.png
import json
# data为list
with open("data.json", "w") as f:
for line in data:
f.write("{}\n".format(json.dumps(line, ensure_ascii=False)))
写入数据格式如下:

网友评论