csv

最近用到了python的csv工具包,故简单的记录一下使用方式。reader是一个

reader

import csv

with open('xxx.csv','r') as fi:
    myreader = csv.reader(fi)
    for idx,line in enumerate(myreader):
        if len(line)!=72:
             print(len(line))

注意,myreader其实是一个可迭代对象,并不会一次将数据读入到内存中。

writer

with open('mtp.csv','w') as fo:
    w = csv.writer(fo) 
    # w的方法有 'dialect', 'writerow', 'writerows'
    w.writerows(data)

data应该是数组,如果是对象,则写入的是对象的key。

在win系统下,换行符号为crlf格式,用vscode打开时,则错显示为两行,实际上还是一行。另外

在open()内增加一个参数newline=’’ ,来控制。

with open('monitor_vm.csv','w',newline='') as fo:

针对乱码、换行等原因,则完整的代码如下:

指定编码,防止输出为’gbk’编码。

with open(filename,'w',newline='',encoding='utf-8') as fo:
       w = csv.writer(fo)
       w.writerow(header)
       for row in obj_list:
           data = []
           for col in header:
               data.append(row[col])
           w.writerow(data)