Python爬虫存储数据 - 使用CSV文本文件存储

1,106 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。 清明假期第一天,今天为了玩一个flash小游戏,学了一下怎么装虚拟机,回退了一下版本,不得不说,兴趣是最好的老师.M1 mac 装虚拟机还挺容易的,终于玩上小时候的flash小游戏了

CSV介绍

CSV,全称为 Comma-Separated Values,文件以纯文本形式存储表格数据,不过说实话我并不清楚它跟xls这个文件格式的区别.

import csv

with open('data.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['id', 'name', 'age'])
    writer.writerow(['10001', 'flynt', 18])
    writer.writerow(['10002', 'flora', 22])
    writer.writerow(['10003', 'hello', 21])

这样就能写入csv 文件了,打开 data.csv 文件,然后指定打开的模式为 w(即写入),获得文件句柄,随后调用 csv 库的 writer 方法初始化写入对象,然后调用 writerow 方法传入每行的数据即可完成写入。

image.png

跟前面学过的一模一样,不再赘述.

修改列与列之间的分隔符,可以传入 delimiter 参数

import csv


with open('data.csv', 'w') as csvfile:
        writer = csv.writer(csvfile, delimiter=' ')
        #writer = csv.writer(csvfile)
        writer.writerow(['id', 'name', 'age'])
        writer.writerow(['10001', 'flynt', 18])
        writer.writerow(['10002', 'flora', 22])
        writer.writerow(['10003', 'hello', 21])

写入昨天提过的JSON 或者list

import csv

with open('data.csv', 'w') as csvfile:
    fieldnames = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'id': '10001', 'name': 'Mike', 'age': 20})
    writer.writerow({'id': '10002', 'name': 'Bob', 'age': 22})
    writer.writerow({'id': '10003', 'name': 'Jordan', 'age': 21})

一样的,跟昨天写入JSON一样会遇到中文的问题,只需要在open上面添加编码参数就可以解决 with open('data.csv', 'w',encoding='utf-8') as csvfile

读取数据

仅仅是与写入相反,将参数'w'修改为'r',就可以完成了.

import csv

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

后记:XLS 文本是电子表格,它包含了文本、数值、公式和格式等内容,而 CSV 中不包含这些内容,就是特定字符分隔的纯文本,结构简单清晰。刚刚查到的,我说的呢,都能使用Excel打开,打开的结果还都一样.