csv文件读写(函数reader、writer;类DictReader、DictWriter)

读写csv文件用到的函数reader、writer;类DictReader、DictWriter
 
1.reader方法的使用
查看reader方法的帮助说明
>>> help(csv.reader)
Help on built-in function reader in module _csv:
 
reader(...)
    csv_reader = reader(iterable [, dialect='excel']
                            [optional keyword args])
        for row in csv_reader:
            process(row)
 
csv文件上的数据:
 
import csv 
reader = csv.reader(file('data.csv','rb')
for line in reader
    print line
打印出来的结果是数组类型,有文件中几行数据就打印几个数组,不区分表头和值
输出结果:
 
2.writer方法的使用
查看help说明
>>> help(csv.writer)
Help on built-in function writer in module _csv:
 
writer(...)
    csv_writer = csv.writer(fileobj [, dialect='excel']
                                [optional keyword args])
        for row in sequence:
            csv_writer.writerow(row)
    
        [or]
    
        csv_writer = csv.writer(fileobj [, dialect='excel']
                                [optional keyword args])
        csv_writer.writerows(rows)
    
    The "fileobj" argument can be any object that supports the file API.
 
writer的使用:
import csv
writer = csv.writer(file('data.csv','wb'))
writer.writerow(['Column1','Column2','Column3']) #写入csv文件的表头
lines = [range(3) for i in range(5)] #[[0,1,2],[0,1,2],[0,1,2],[0,1,2],[0,1,2]]
writer.writerows(lines) #同时写入多行信息
或:
for line in lines:
    writer.writerow(line) #一次写入一行信息
 
csv文件上查看写入结果:
 
 3.DictReader类的使用
csv文件的数据如下:
import csv
reader = csv.DictReader(file('data.csv','rb'))
for line in reader
    print line
打印出来的数据是字典类型,表格的表头为键、每一行的值为值,值有几行就打印几个字典
 
4.DictWriter类的使用
import csv
rows = [{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'}]
 
fieldnames = ['Column1','Column2','Column3','Column4'] #定义表头字段
 
cr = csv.DictWriter(file('data.csv','wb'),fieldnames = fieldnames)
cr.writeheader() #将表头名称写入csv文件
cr.writerows(rows) #将要写入的数据一次性写入到文件,也可以使用cr.writerow()一次写入一行

posted on 2018-04-13 18:43  MING_FBUG  阅读(22039)  评论(0编辑  收藏  举报

导航