pythoncsv文件的操作_python操作CSV文件
概念:CSV是逗號(hào)分隔值或者字符分割值,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)。CSV文件可以用文本文件或者轉(zhuǎn)換成EXCEL(直接用EXCEL也可以,但是可能會(huì)有一些問題)打開。因此更適合通過CSV文件進(jìn)行程序之間轉(zhuǎn)移表格數(shù)據(jù)。
應(yīng)用場(chǎng)景:需要進(jìn)行取數(shù)分析(將數(shù)據(jù)庫數(shù)據(jù)拉取下來給產(chǎn)品)、保存爬蟲數(shù)據(jù)時(shí),借助CSV文件更便利一些,同時(shí)也可以用該文件記錄腳本的操作日志。
下面演示如何通過Python進(jìn)行CSV文件的讀寫操作。
import csv
with open('test.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(['id', 'name', 'phone'])
writer.writerow(['01', 'zhangsan', '13600000001'])
writer.writerow(['02', 'lisi', '13600000002'])
writer.writerow(['03', 'wangwu', '13600000003'])
用記事本打開可以看到如下內(nèi)容,默認(rèn)每行數(shù)據(jù)之間是通過逗號(hào)隔開的(可以再理解一下這個(gè)Comma-Separated Values)
實(shí)例1-1.png
用EXCEL打開的話,數(shù)據(jù)長這樣
實(shí)例1-2.png
emmmm,讓我們把每行下面的空格去掉,加上newline參數(shù)
import csv
with open('test.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['id', 'name', 'phone'])
writer.writerow(['01', 'zhangsan', '13600000001'])
writer.writerow(['02', 'lisi', '13600000002'])
writer.writerow(['03', 'wangwu', '13600000003'])
看,空格沒有了!
實(shí)例2-1.png
如果想用其它符號(hào)代替數(shù)據(jù)間的逗號(hào),設(shè)置delimiter參數(shù)
import csv
with open('test.csv', 'w') as f:
writer = csv.writer(f, delimiter = '-')
writer.writerow(['id', 'name', 'phone'])
writer.writerow(['01', 'zhangsan', '13600000001'])
writer.writerow(['02', 'lisi', '13600000002'])
writer.writerow(['03', 'wangwu', '13600000003'])
實(shí)例3-1.png
還有一種實(shí)現(xiàn)方式,先寫入表頭,再用writerows插入數(shù)據(jù)
import csv
with open('test.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(['id', 'name', 'phone'])
writer.writerows([['01', 'zhangsan', '13600000004'],['02', 'lisi', '13600000005'],['03', 'wangwu', '13600000006']])
實(shí)例4-1.png
或者將表頭抽離出來,通過字典的方式寫入
with open('test.csv', 'w') as f:
header = ['id', 'name', 'phone']
writer = csv.DictWriter(f, fieldnames=header)
writer.writeheader()
writer.writerow({'id': '01', 'name': 'zhangsan', 'phone': '13600000007'})
writer.writerow({'id': '02', 'name': 'lisi', 'phone': '13600000008'})
writer.writerow({'id': '03', 'name': 'wangwu', 'phone': '13600000009'})
實(shí)例5-1.png
還可以用for循環(huán)將數(shù)據(jù)依次寫入
import csv
data = [
("zhangsan",'13600000001'),
("lisi",'13600000002'),
("wangwu",'13600000003')
]
with open('test.csv','w') as f:
writer = csv.writer(f)
for i in data:
writer.writerow(i)
如果需要寫入中文數(shù)據(jù),為了避免編碼錯(cuò)誤,文件操作時(shí)加上編碼格式
import csv
with open('test.csv', 'w', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['id', 'name', 'phone'])
writer.writerow(['01', '張三', '13600000001'])
writer.writerow(['02', '李四', '13600000002'])
writer.writerow(['03', '王五', '13600000003'])
文件讀取操作
import csv
with open('test.csv','r',encoding = 'utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
實(shí)例6-1.png
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的pythoncsv文件的操作_python操作CSV文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php的实体字符表,php htmlsp
- 下一篇: python中的zip是什么意思_Pyt