写入到csv文件:
import csv
headers = ['name','age','classroom']
values = [
['知了',18,'111'],
['wena',20,'222'],
['bbc',21,'111'],
]
with open('test.csv','w',encoding='utf-8',newline='') as fp: # newline默认为'\n',如果不改的话,那么就会每行数据之间有一行空行。
writer = csv.writer(fp) # fp为文件指针,文件句柄,writer是迭代器
writer.writerow(headers) # 写入csv文件的头部
writer.writerows(values) # 多行写入,value是一个列表,其中每一个元素可以是列表或元组。
以字典的形式写入csv文件:
import csv
headers = ['name','age','classroom']
values = [
{"name":'wenn',"age":20,"classroom":'222'},
{"name":'abc',"age":30,"classroom":'333'}
]
with open('test.csv','w',newline='') as fp:
writer = csv.DictWriter(fp,headers) # 产生迭代器:writer
writer = csv.writeheader() # 写入文件头部标题
writer.writerow({'name':'zhiliao',"age":18,"classroom":'111'}) #只写入一行数据
writer.writerows(values) # 写入多行
读取csv文件:
import csv
with open('stock.csv','r',encoding='utf-8') as fp:
reader = csv.reader(fp) #获取一个迭代器
titles = next(reader) #迭代器迭代一次,这样再输出的时候就不会输出文件头部
for x in reader:
print(x) #遍历每一行,并将每一行输出
以字典的形式读取csv文件:
import csv
with open('stock.csv','r',encoding='utf-8') as fp:
reader = csv.DictReader(fp) # 以字典的形式读取一个csv文件,并返回迭代器,用于遍历文件。
for x in reader:
print(x['turnoverVol']) # 由于以字典的形式打开,所以可以通过键的方式获取每一行中的某一项