美文网首页
Python 标准库:csv

Python 标准库:csv

作者: 孙庚辛 | 来源:发表于2017-01-13 16:44 被阅读0次

我们经常会用 CSV 文件保存联系人信息,或者一些表格数据, 在 Python 中也会有支持 CSV 的标准库。

如果需要从 CSV 文件中读取数据并返回一组字典应该怎么做呢?

比如对下面这个文件 data.csv

"Ordinal","Name","DoB"
1,"Annabel",08/18/2007
2,"Brian",08/19/2007
3,"Charlie",08/20/2007
4,"Derek",08/21/2007
5,"Emily",08/22/2007
6,"Fortune",08/23/2007
7,"Gerald",08/24/2007
8,"Harriet",08/25/2007
9,"India",08/26/2007

可以用下面这个函数来读取数据, 把第一行的列名作为字典的 key ,后面每行的数据做为 value, 和 key 对应地逐条显示出来。

import csv

def read_csv_loop(file_name='data.csv'):
    raw_result = []
    with open(file_name) as f:
        reader = csv.reader(f)
        for row in reader:
            raw_result.append(row)
    keys = raw_result[0]
    result = []
    for row in raw_result[1:]:
        result.append({keys[i] : val for i, val in enumerate(row)})
    return result

其中 with 语句是为了防止打开的文件忘记被关掉,不过这个方法有点麻烦,它用了一个 enumerate 函数来遍历读出来的结果。csv 还有更好用的方法 DictReader 可以利用,

import csv
def read_csv(file_name='data.csv'):
    with open(file_name) as f:
        reader = csv.DictReader(f)
        return [row for row in reader]

if __name__ == '__main__':
    print read_csv('data.csv')

输出:
[{'Ordinal': '1', 'DoB': '08/18/2007', 'Name': 'Annabel'}, {'Ordinal': '2', 'DoB': '08/19/2007', 'Name': 'Brian'}, {'Ordinal': '3', 'DoB': '08/20/2007', 'Name': 'Charlie'}, {'Ordinal': '4', 'DoB': '08/21/2007', 'Name': 'Derek'}, {'Ordinal': '5', 'DoB': '08/22/2007', 'Name': 'Emily'}, {'Ordinal': '6', 'DoB': '08/23/2007', 'Name': 'Fortune'}, {'Ordinal': '7', 'DoB': '08/24/2007', 'Name': 'Gerald'}, {'Ordinal': '8', 'DoB': '08/25/2007', 'Name': 'Harriet'}, {'Ordinal': '9', 'DoB': '08/26/2007', 'Name': 'India'}]

相关文章

  • Python 标准库:csv

    我们经常会用 CSV 文件保存联系人信息,或者一些表格数据, 在 Python 中也会有支持 CSV 的标准库。 ...

  • python 解析csv文件

    csv文件(Comma-Separated Values)的解析 python标准库中有csv 假如有这样一份cs...

  • 通过csv.writer写入数据每行都会增加一个空行

    通过csv.writer写入数据每行都会增加一个空行 读取结果: python关于CSV标准库的介绍中有写到: I...

  • Python CSV文件导入MySQL数据库

    Python CSV文件导入MySQL数据库 利用Python将CSV文件导入至Mysql数据库,如果不存在表名,...

  • Django-26 django生成csv文件

    Python提供了内建库 - csv;可直接通过该库操作csv文件案例如下: csv文件下载 在网站中,实现下载c...

  • Python

    Python 创建文件 Python 对数据库进行操作--增删改查 Python 对csv进行操作 Python ...

  • 验证将csv写入数据库的程序

    前两天的文章《利用python将csv文件写入数据库》记录了用python将多日的告警csv文件写入sqlite数...

  • (三)python常用标准库

    python常用标准库 python标准库常见模块 操作系统相关:os 时间与日期:time、datetime 科...

  • python3从零学习-5.0、标准库

    Python 标准库 Python 标准库非常庞大,所提供的组件涉及范围十分广泛。这个库包含了多个内置模块 (...

  • Udacity Python 随笔 *

    Udacity Python入门 标准库推荐 Python 标准库的模块很多!为了帮助大家熟悉可用模块,以下是精选...

网友评论

      本文标题:Python 标准库:csv

      本文链接:https://www.haomeiwen.com/subject/jzssbttx.html