python 操作csv文件
1.什么是CSV格式文档
所谓“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。通常CSV文件开头是不留空的,以行为单位,每行记录多项数据,每项数据用逗号 来分隔(标准英文逗号)
2.Python 的csv模块封装了常用的操作csv文件的功能。
写文件,把列表写入文件中其中writerow是将列表写在一行上,writerows是将列表迭代写在多行中。
import csv list1 = ['a', 'b','c','d'] out = open("data.csv", 'w') csv_writer = csv.writer(out) csv_writer.writerow(list1)
读文件,会将文件的内容以列表的格式打印到控制台
import csv csv_reader = csv.reader(open('mycsvfile')) for row in csv_reader: print(row)
默认的情况下, 读和写使用逗号做分隔符(delimiter),用双引号作为引用符(quotechar),当遇到特殊情况是,可以根据需要手动指定字符,
字典方式读写
格式
class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds) class csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
其中fieldnames指定字典的key值,如果reader里没有指定那么默认第一行的元素,在writer里一定要指定这个。
写
import csv with open('myfile.csv', 'w') as csvfile: fieldnames = ['title1', 'title2'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerow({'title1': 'name1', 'title2': 'test1'}) writer.writerow({'title1': 'name2', 'title2': 'test2'}) writer.writerow({'title1': 'name3', 'title2': 'test3'})
读
import csv with open('myfile.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row['title1'], row['title2'])
参考资料