Python DictReader读写csv文件

本文介绍如何使用Python的csv库进行CSV文件的读取与写入操作。通过示例代码展示了如何利用DictReader按行读取数据,并利用DictWriter写入包含列标题的数据。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

准备

此文档的示例代码是基于python3.5写的。
使用csv库前,先导入csv库:
import csv

读取内容

假设csv文件的内容如下图所示,DictReader会将第一行的内容(类标题)作为key值,第二行开始才是数据内容。即图中的csv文件有2列7行数据,第一列的key值为id,第二列的key值为class:
这里写图片描述

with open(‘name.csv’) as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        #循环打印数据的id和class值,此循环执行7次
        print(row[‘id’],row[‘class’])

打印结果为:
0 5
1 4
2 13

6 15

写入内容

现假设我们要创建一个格式如上图所示的csv文件,则实现代码应该如下:

with open(‘name.csv’,’w’) as csvfile:
    writer = csv.DictWriter(csvfile,fieldnames=[‘id’,’class’])
    #写入列标题,即DictWriter构造方法的fieldnames参数
    writer.writeheader()
    for data in datas:
        writer.writerow({‘id’:data[0],’class’:data[1]})

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python 中,读取 CSV 文件是数据处理和分析中的常见任务。可以使用标准库中的 `csv` 模块或者第三方库如 `pandas` 来完成此任务。以下是几种常用的方法: ### 使用 `csv` 模块读取 CSV 文件 #### 方法 1:使用 `csv.reader` 这种方法适合读取 CSV 文件并以列表形式获取每一行的数据。 ```python import csv with open('data.csv', newline='') as csvfile: csv_reader = csv.reader(csvfile) for row in csv_reader: print(row) ``` 此方法通过 `csv.reader` 对象逐行读取 CSV 文件,并将每一行的数据作为列表返回[^1]。 #### 方法 2:使用 `csv.DictReader` 如果 CSV 文件的第一行是列标题,可以使用 `csv.DictReader` 以字典形式读取每一行数据。 ```python import csv filename = './data/test.csv' with open(filename, newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row) ``` 此方法将每一行数据作为字典返回,字典的键为列标题,值为对应的行数据[^2]。 ### 使用内置 `open()` 函数读取 CSV 文件 对于简单的读取任务,可以直接使用内置的 `open()` 函数打开文件并逐行读取。 ```python f = open('path/to/csv_file', encoding='UTF8') for line in f: print(line.strip()) f.close() ``` 此方法适合处理简单的文本文件,但对于复杂的 CSV 数据处理任务,建议使用 `csv` 模块或 `pandas` 库[^3]。 ### 使用 `pandas` 库读取 CSV 文件 `pandas` 是一个强大的数据处理库,提供了更高效和便捷的 CSV 文件读取方式。 ```python import pandas as pd df = pd.read_csv('data.csv') print(df) ``` 此方法将 CSV 文件读取为一个 `DataFrame` 对象,便于进行数据分析和处理。`pandas` 还支持更多的参数配置,例如指定编码、跳过行等[^4]。 ### 总结 - **`csv.reader`**:适合读取简单的 CSV 文件并以列表形式获取每一行数据。 - **`csv.DictReader`**:适合读取带有列标题的 CSV 文件并以字典形式获取每一行数据。 - **`open()` 函数**:适合简单的文本文件读取任务。 - **`pandas` 库**:适合复杂的数据处理任务,提供高效的 `DataFrame` 对象。 选择合适的方法取决于具体的使用场景和个人偏好。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄大圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值