python 處理 csv 文件
轉(zhuǎn)自公眾號【Python之禪】
csv 文件是一種逗號分隔的純文本形式存儲的表格數(shù)據(jù),Python內(nèi)置了CSV模塊,可直接通過該模塊實(shí)現(xiàn)csv文件的讀寫操作,在web應(yīng)用中導(dǎo)出數(shù)據(jù)是比較常見操作。
這篇文章介紹csv模塊的基本用法
寫操作
writer.writerow, 將多列數(shù)據(jù)寫入一行
import csv
with open('some.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(["123", "234", "345"])
writer.writerow(["abc", "efg", "hij"])
如果以文本文件的方式打開,每行數(shù)據(jù)之間都是用逗號隔開的文本字符串

寫入時(shí),必須指定 newline=’’, 否則每插入一行就有一個(gè)空行
讀操作
with open('some.csv', 'r', newline="") as f:
reader = csv.reader(f)
for row in reader:
print(row)
輸出
['123', '234', '345']
['abc', 'efg', 'hij']DictWriter & DictReader
csv.DictWriter 對象引入了一個(gè)fieldnames參數(shù), fieldnames是csv文件中的表頭,就是第一行中的數(shù)據(jù)
with open("person.csv", 'w', newline='') as f:
fieldnames = ["name", "age", "sex"]
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({"name": "zhangsan", "age": 10, "sex": "male"})
writer.writerow({"name": "lis", "age": 20, "sex": "male"})

with open('person.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)每行輸出的是一個(gè)字典對象
OrderedDict([('name', 'zhangsan'), ('age', '10'), ('sex', 'male')])
OrderedDict([('name', 'lis'), ('age', '20'), ('sex', 'male')])默認(rèn)情況下導(dǎo)出的字符串全是數(shù)字時(shí),在excel中打開時(shí)會被自動(dòng)轉(zhuǎn)換成科學(xué)計(jì)數(shù)格式
import csv
field_order = ["會診單號"]
with open("導(dǎo)出.csv", 'w', encoding="utf8", newline="") as csvfile:
writer = csv.DictWriter(csvfile, field_order)
writer.writeheader()
writer.writerow({"會診單號": "20210217162737860175"})
只需要在字符串后面加轉(zhuǎn)義字符’\t’即可變成字符串
import csv
field_order = ["會診單號"]
with open("導(dǎo)出.csv", 'w', encoding="utf8", newline="") as csvfile:
writer = csv.DictWriter(csvfile, field_order)
writer.writeheader()
writer.writerow({"會診單號": "20210217162737860175"+'\t'})
- EOF -
回復(fù)關(guān)鍵字“簡明python ”,立即獲取入門必備書籍《簡明python教程》電子版
回復(fù)關(guān)鍵字“爬蟲”,立即獲取爬蟲學(xué)習(xí)資料
python入門與進(jìn)階 每天與你一起成長 推薦閱讀
評論
圖片
表情
