TXT 格式
txt讀取
設(shè)定 data.txt 一行為一條樣本
f. read() 或 f.readlines() 讀出均為str格式玩祟。
其中
- f.read()讀全部數(shù)據(jù)為一個str
- f.readlines將數(shù)據(jù)一條一條讀成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格式,因此處理文本數(shù)據(jù)較為方便
- f為迭代器屿聋, 但 f.read(), f.readlines()均會將數(shù)據(jù)全部讀進內(nèi)存空扎,因此需謹慎使用。
txt寫入
# data為上段代碼讀取數(shù)據(jù)
with open("data.txt", "w") as f:
for line in data:
f.write("{}\n".format(line))
json格式
json格式多用于不規(guī)則數(shù)據(jù)的存儲
json讀寫主要由 json.dump, json.dump, json.load, json.loads組成
準(zhǔn)確的說胜臊,
- json.dump和json.load可直接寫入或讀取[{dict1}, {dict2},...] 格式的data.json文件
- json.dumps 和 json.loads只涉及 str和dict的轉(zhuǎn)換
不參與文件的讀寫 - json.dump / json.load由于是一整個寫入或讀入勺卢。
因此data.json為[dict1, dict2, ...]格式,實質(zhì)是個大的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可一下寫入全部數(shù)據(jù)勒魔, 數(shù)據(jù)表現(xiàn)形式為list, 讀取只能由json.load讀取
- python默認unicode, 文本為中文是ensure_ascii=False
-
indent會自動換行讓文件可讀性更好
寫入數(shù)據(jù)格式如下:
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)))
寫入數(shù)據(jù)格式如下: