美文网首页
python 读写数据

python 读写数据

作者: 小明akira | 来源:发表于2019-02-23 15:16 被阅读0次

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)))

写入数据格式如下:


json_dumps.png

相关文章

网友评论

      本文标题:python 读写数据

      本文链接:https://www.haomeiwen.com/subject/vyrpyqtx.html