Pythonpython

Python 全栈:csv 模块详解

2021-12-23  本文已影响0人  you的日常

这篇文章就为你介绍一个知识点,python 内置模块 csv 。

csv(Comma-Separated Values)文件是什么?

它是一种文件格式,一般也被叫做逗号分隔值文件,可以使用 Excel 软件或者文本文档打开 。
其中数据字段用半角逗号间隔(也可以使用其它字符),使用 Excel 打开时,逗号会被转换为分隔符。
csv 文件是以纯文本形式存储了表格数据,并且在兼容各个操作系统。

例如下面的文本,在 excel 中就以表格的形式存在。

sid,name,age
10010,橡皮擦,18
10086,发量迷人的乔喻,19
10000,各位博主,20

image

下面就对 python 内置模块 csv 的用法进行简单的说明。

python 中的 csv 文件清晰解法

读取文件

使用 csv.reader() 读取 csv 文件内容。

import csv  # 模块导入

with open('aa.csv', 'r', newline='', encoding='utf-8') as f:
    # <_csv.reader object at 0x00000000020918D0>
    reader = csv.reader(f)
    for r in reader:
        print(r)

其中 csv.reader() 方法的原型如下所示:

csv.reader(csvfile, dialect='excel', **fmtparams)

其中的参数 csvfile 可以是任何对象,但要求该对象是一个迭代器,所以文件对象和列表对象都可以传入,如果是文件对象,还要求打开它时携带参数 newline='' 。后面的参数保持默认即可。

第二种方式是使用 DictReader 类,该类实现的效果与 reader() 方法一致,也是接收可迭代对象,返回生成器,差异是将返回的结果放到了一个字典的值内,字典的键就是单元格的标题。并且这样输出的函数是,不需要单独处理 csv 的列头行了。

import csv  # 模块导入

with open('aa.csv', 'r', newline='', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for r in reader:
        print(r)

输出内容:

OrderedDict([('sid', '10010'), ('name', '橡皮擦'), ('age', '18')])
OrderedDict([('sid', '10086'), ('name', '发量迷人的乔喻'), ('age', '19')])
OrderedDict([('sid', '10000'), ('name', '各位博主'), ('age', '20')])

写入文件

csv 文件写入用到的模块方法是 csv.writer(),该方法的原型如下:

csv.writer(csvfile, dialect='excel', **fmtparams)

最基本的写入:

上一篇下一篇

猜你喜欢

热点阅读