CSV格式文件的讀取與保存
1. 什么是CSV
"CSV"並不是一種單一的、定義明確的格式(盡管RFC 4180有一個被通常使用的定義)。因此在實踐中,術語“CSV”泛指具有以下特征的任何文件:
1.純文本,使用某個字符,比如ASCII,Unicode,EBCIC或GB2312(簡體中文環境)等;
2.由記錄組成(典型的是每行一條記錄);
3.每條記錄被分隔符分隔為字段(典型分隔符有逗號、分號或制表符;有時分隔符可以包括可選的空格);
4.每條記錄都有同樣的字段序列。
2. CSV文件的讀取
1、按列表讀取
2、按字典形式讀取
#encoding: utf-8 import csv def read_csv_demo1(): with open('stock.csv', 'r') as fp: # reader是一個迭代器 reader = csv.reader(fp) next(reader) for x in reader: name = x[3] volumn = x[-1] print({'name': name, 'volumn': volumn}) def read_csv_demo2(): with open('stock.csv','r') as fp: # 使用DictReader創建的reader對象 # 不會包含標題那行的數據 # reader是一個迭代器,遍歷這個迭代器,返回來的是一個字典。 reader = csv.DictReader(fp) for x in reader: value = {"name":x['secShortName'],'volumn':x['turnoverVol']} print(value) if __name__ == '__main__': read_csv_demo2()
3. CSV文件的保存
1、以列表進行保存,直接存入
2、以字典形式保存,需要先插入頭再保存值
#encoding: utf-8 import csv def write_csv_demo1(): headers = ['username', 'age', 'height'] values = [ ('張三', 18, 180), ('李四', 19, 190), ('王五', 20, 160) ] with open('classroom.csv', 'w', encoding='utf-8', newline='') as fp: writer = csv.writer(fp) writer.writerow(headers) writer.writerows(values) def write_csv_demo2(): headers = ['username', 'age', 'height'] values = [ {'username':'張三','age':18,'height':180}, {'username':'李四','age':19,'height':190}, {'username':'王五','age':20,'height':160} ] with open('classroo1.csv','w',encoding='utf-8',newline='') as fp: writer = csv.DictWriter(fp,headers) # 寫入表頭數據的時候,需要調用writeheader方法 writer.writeheader() writer.writerows(values) if __name__ == '__main__': write_csv_demo2()