CSV文件储存

CSV文件储存

  CSV,全称为 Comma-Separated Vaules,翻译为逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成,字段之间的分隔符是字符串或其他字符,最常见的是逗号或制表符。不过所有记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。它比Excel文件更加简洁,XLS文本是电子表格,它包含了文本、数值、公式和格式等内容,而CSV中不包含这些内容,就是特定字符分隔的纯文本,结构简单清晰。下面用一个简单的实例来介绍CSV:

import csv

with open('data.csv','w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['id','name','age'])
    writer.writerow(['1001','jonas',18])
    writer.writerow(['1002','jerry',17])
    writer.writerow(['1003','tom',16])

首先,打开data.csv文件,然后指定打开的模式为w,获得文件句柄,随后调用csv库的writer()方法初始化写入对象,传入该句柄,然后调用writerow()方法传入每行的数据即可完成写入。然后通过文本形式直接打开data.csv会发现,刚才写入的数据都是通过逗号分隔开的,当然,在写入的时候也可以修改这个分隔符:

import csv

with open('data.csv','w') as csvfile:
    writer = csv.writer(csvfile,delimiter=' ')
    writer.writerow(['id','name','age'])
    writer.writerow(['1001','jonas',18])
    writer.writerow(['1002','jerry',17])
    writer.writerow(['1003','tom',16])

上面这里指定空格为分隔符。另外,还可以通过调用writerows()方法同时写入多行,此时参数就需要为二维列表:

import csv

with open('data.csv','w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['id','name','age'])
    writer.writerows([['1001','jonas',18],['1002','jerry',17],['1003','tom',16]])

除此以外,csv库还提供了字典的写入方式:

import csv

with open('data.csv','w') as csvfile:
    fieldnames = ['id','name','age']
    writer = csv.DictWriter(csvfile,fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'id':1001,'name':'jonas','age':18})
    writer.writerow({'id':1002,'name':'jerry','age':20})

先定义3个字段,用fieldnames表示,然后将其传给DictWriter来初始化一个字典写入对象,接着可以调用writeheader()方法先写入头信息,然后再调用writerow()方法传入相应字典。

 

除了上面介绍的写入信息,还可以通过csv库来读取.csv的文件:

import csv

with open('data.csv','r',encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

通过遍历输出的每行结果都是一个列表。

posted @ 2018-06-18 10:33  jonas_von  阅读(870)  评论(0编辑  收藏  举报