CSV文件的写入与读出

写入到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'])   # 由于以字典的形式打开,所以可以通过键的方式获取每一行中的某一项

猜你喜欢

转载自blog.csdn.net/weixin_41514525/article/details/87280650