CSV
CSV(逗号分隔值)格式是电子表格和数据库最常用的导入和导出格式。
该csv模块实现了以CSV格式读取和写入表格数据的类。它允许程序员说“以Excel首选格式编写此数据”或“从Excel生成的此文件中读取数据”,而不知道Excel使用的CSV格式的精确细节。程序员还可以描述其他应用程序理解的CSV格式或定义自己的专用CSV格式。
常用功能
# 读取csv文件
import csv
with open('a.csv', 'rb') as f: # 采用b的方式处理可以省去很多问题
reader = csv.reader(f)
for row in reader:
# do something with row, such as row[0], row[1]
# 写入csv文件
import csv
with open('a.csv', 'wb') as f: # 采用b的方式处理可以省去很多问题
writer = csv.writer(f)
writer.writerows(someiterable)
默认情况下,读和写使用逗号做分隔符(delimiter),用双引号作为引用符(quotechar),当遇到特殊情况是,可以根据需要手动指定字符,例如:
import csv
with open('a.csv', 'rb') as f:
# 指定冒号作为分隔符,并且指定quote方式为不引用
reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
for row in reader:
print(row)
quoting的可选项有:
1、QUOTE_ALL
指示writer对象引用所有字段。
2、QUOTE_MINIMAL
指示writer对象只引用那些包含特殊字符,如字段分隔符,quotechar或任何字符 lineterminator。
3、QUOTE_NONNUMERIC
指示writer对象引用所有非数字字段。
指示读者将所有非引用字段转换为float类型。
4、QUOTE_NONE
指示writer对象永远不引用字段。当输出数据中出现当前 分隔符时,它前面是当前的escapechar 字符。如果未设置escapechar,则Error在遇到任何需要转义的字符时,编写器将引发。
指示reader不对引号字符执行任何特殊处理。
字典方式读写
参数格式如下:
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('a.csv') as f:
reader = csv.DictReader(f)
# 写
import csv
with open('a.csv', 'w') as f:
fieldnames = ['key1', 'key2']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'key1': 'a', 'key2': 'b'})
writer.writerow({'key1': 'c', 'key2': 'd'})
以上内容为csv模块的浅知识,可以作为了解来参考