CSV( Comma Separated Values),是最常见的从电子表格和数据库中导入和导出的数据类型。
csv.reader(csvfile, dialect='excel', **fmtparams)
参数中的csvfile可以是任何支持迭代的对象。文件和列表对象都支持,如果是文件对象,必须有使用‘b'标志打开。
class excel:
delimiter = ' , '
quotechar = ' " '
escapechar = None
doublequote = True
skipinitialspace = False
lineterminator = '\r\n'
quoting = QUOTE_MINIMAL
设置:
* quotechar - 引号字符,默认是双引号‘ “ ’。
* delimiter - 字段分割符,默认是逗号' , '。
* skipinitialspace - 如何紧跟在分隔符后面的空白符。默认是False,意味着空白符作为下一个字 段的一部分
* lineterminator - 分割行的字符串
* quoting - 控制写的时候引号应该怎么生成。可以是下面的这些模块常量:
csv.QUOTE_MINIMAL : 仅当必要的时候,如一个字段中有包含引号或者分隔符。
csv.QUOTE_ALL : 所有的字段都将被引号包裹。
csv.QUOTE_NONMUMERIC : 那些不被解析成整形或者浮点型的字段都将被引号包裹。
csv.QUOTE_NONE : 任何情况下,字段都不被引号包裹。
* escapechar - 当quoting被设置为QUOTE_NONE时,用来避免分隔符的字符。
* doublequote - 处理字段中的引号,当设置为Ture时,读取的时候,两个引号当作为一个,写入的时候,字段中的一个引号写成两个。
例子:
简单的读取CSV文件
import csv
with open('some.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
print row
以冒号作为分隔符读取:
import csv
with open('passwd', 'rb') as f:
reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
for row in reader:
print row
简单的写入例子:
import csv
with open('some.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(someiterable)
注册一个新的方言:
import csv
csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)
with open('passwd', 'rb') as f:
reader = csv.reader(f, 'unixpwd')