CSV基础操作——写入和读取

CSV,英文全称为Comma Sepatated Values,是以纯文本形式储存表格数据,中文可以叫做逗号分隔值。相比xlsx,文本储存的结构更加清晰。

CSV的写入

采用writerow(),写入每一列,我们可以使用下面的代码生成一个CSV文件。

import csv

with open('examble.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['name', 'zone', 'score'])
    writer.writerow(['John', 'Beijing', '23'])
    writer.writerow(['BOb', 'Chengdu', '18'])
    writer.writerow(['Wu', 'Shanghai', '23'])

生成的文件通过文本编辑器打开,则是文本类型的,用逗号进行分隔。

name,zone,score
John,Beijing,23
BOb,Chengdu,18
Wu,Shanghai,23

如果通过excel打开效果如下,我们可以增加更多列。

CSV基础操作——写入和读取

如果我们不想要逗号分隔符,或者使用其他分隔符,可以使用delimiter传递参数。

 writer = csv.writer(csvfile, delimiter=' ')

上面的列子,一行行的写入比较麻烦,我们可以通过列表方式解决,同时写入多行:

writer.writerow([['name', 'zone', 'score'], ['John', 'Beijing', '23'], ['BOb', 'Chengdu', '18'], ['Wu', 'Shanghai', '23']])

当然也可以使用字典写入。在使用字典写入时,需要使用Dicwriter,下面是一个例子:

import csv

with open('examble.csv', 'w') as csvfile:
    filenames = ['name', 'zone', 'score'] # 定义字段
    writer = csv.DictWriter(csvfile, fieldnames=filenames)
    writer.writeheader()
    writer.writerow({'name':'John', 'zone': 'Beijing', 'score': '18'})

CSV文件的读取

使用Reader 即可将文件读取出来。

import csv

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

实际上,使用pandas更方便:

import pandas as pd

r = pd.read_csv('data.csv', encoding='ISO-8859-1') # encoding='ISO-8859-1'用于解码
print(r)

参考资料

《python3 网络爬虫开发实践》崔庆才

2020年12月2日

上一篇:CSS3之3D轮播图


下一篇:OpenCV轮廓发现