CSV 文件存储

CSV 文件存储CSV 全称 Comma SeparatedVal 中文叫做逗号分割值或者字符分割值 其文件以纯文本形式存储表格数据 CSV 文件是一个字符序列 可以由任意数目的记录组成 各条记录以某种换行符

大家好,欢迎来到IT知识分享网。

CSV 全称 Comma-Separated Values, 中文叫做逗号分割值或者字符分割值, 其文件以纯文本形式存储表格数据,CSV文件是一个字符序列, 可以由任意数目的记录组成,各条记录以某种换行符分隔开。每条记录都有若干字段组成,字段间的分隔符是其他字符或字符串, 最常见的是都好或制表符。 不过所有记录都有完全相同的字段序列, 相当于一个结构化表纯文本形式。 它比 Excel 文件更加简洁, XLS  文本是电子表格, 包含文本,数值,公式和格式等内容, CSV 中则不包含这些, 就是以特定字符作为分隔符的纯文本, 结构简单清晰。 所以有时候使用 CSV 来存储数据比较方便的。

写入

import csv

 文本形式打开

 CSV 文件存储

 浏览器或Excel 打开

CSV 文件存储

这里首相打开 data.csv 文件, 然后指定打开模式为 w (即写入), 获得文件句柄, 随后调用 csv 库的 writer 初始化写入对象, 传入该句柄, 然后调用 writerow 方法传入每行数据,这样便完成了写入,运行结束便得到了一个名为 data.csv 的文件

如果想要修改列于列之间的分隔符可以传入 delimiter 参数

import csv

浏览器打开

CSV 文件存储

文本打开

CSV 文件存储

可以看到 确实改成空格了, 浏览器貌似有点小问题

另外我们可以调用 writerows 方法同时写入多行,此时参数需要传入二维列表

import csv

输出结果与前面一样

但是一般情况下,爬虫爬取的都是结构化数据, 我们一般会用字典表示这种数据。 csv 库也提供了字典的写入方式

import csv

这里定义了三个字段,用 fieldnames 表示, 然后将其传入 DictWriter 方法以初始化一个字典写入对象, 并将对象赋给 writer 变量。 接着调用写入了对象的 writeheader 方法先写入头部信息, 在调用 writerow 方法传入相应的字典。 最终的写入结果和之前完全相同

如果想追加写入, 把 open 函数的第二个参数改成 a 

import csv

如果想要写入中文, 我们可能会遇到字符编码问题,此时需要给 open 参数指定编码格式

import csv

另外如果接触过 pandas 等库, 可以调用 DataFrame 对象的 to_csv 方法将数据写入 CSV 文件中。这种方法需要安装 pandas 库

安装:  pip install pandas 

这里我们先定义了几条数据,每条数据都是一个字典, 然后将其组合成要给列表,赋值为 data 

紧接着我们使用了 pandas 的 DataFrame 类新建了一个 DataFrame 对象, 参数传入 data ,并把该对象赋值为 df 。 最后我们调用 df 的 to_csv 方法将数据保存为 CSV 文件

读取

我们同样可以用 csv 库来读取 csv 文件

['id', 'name', 'age'] ['10001', 'Mike', '20'] ['10002', 'Bob', '22'] ['10003', 'Jordan', '21'] 

这里我们构造的是 Reader 对象, 通过遍历输出了文件中每行的内容, 每一行都是一个列表。 注意,如果 CSV 文件中包含中文, 还需要指定文件编码

另外我们还可以使用 pandas 的 read_csv 方法将数据从 CSV 文件中读取出来

import pandas as pd

 id name age 0 10001 Mike 20 1 10002 Bob 22 2 10003 Jordan 21 

这里的 df 实际上是一个 DataFrame 对象

如果只想读取文件里面的数据, 可以把 df 再进一步转化为列表或者元组

import pandas as pd

[[10001, 'Mike', 20], [10002, 'Bob', 22], [10003, 'Jordan', 21]]

这里我们调用了 df 的 value 属性, 再调用 tolist 方法, 即可将数据转化为列表形式

另外, 直接对 df 进行逐行遍历, 同样能得到列表类型的结果

import pandas as pd

[10001, 'Mike', 20] [10002, 'Bob', 22] [10003, 'Jordan', 21] 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120052.html

(0)
上一篇 2025-11-01 10:20
下一篇 2025-11-01 10:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信