CSV之Python 简单使用

文章介绍了Python中用于处理CSV文件的四个主要对象:reader、writer、DictReader和DictWriter。示例展示了如何使用它们来读取和写入CSV文件,包括以列表和字典形式处理数据。
摘要由CSDN通过智能技术生成

Python库:CSV

csv中4个常用对象:

  • csv.reader:以列表的形式返回读取的数据。
  • csv.writer:以列表的形式写入数据。
  • csv.DictReader:以字典的形式返回读取的数据。
  • csv.DictWriter:以字典的形式写入数据。
读取CSV文件

读取内容如下:

 文件第一行为header,从第二行开始是数据。

使用csv.reader读取数据
# 导入 csv 库
import csv

# 以读的方式打开文件
with open('data.csv', mode='r', encoding='utf-8-sig') as file:
    
    reader = csv.reader(file) # 创建csv.reader实例

    header = next(reader) # 获取第一行的header,并且在接下来的row中不会再包含header

    for row in reader:
        print(f'{header[0]}: {row[0]}, {header[1]}: {row[1]}, {header[2]}: {row[2]}')
    

运行结果如下:

影片名: 肖申克的救赎, 评分: 9.7, 评价人数: 2874828
影片名: 霸王别姬, 评分: 9.6, 评价人数: 2123836
影片名: 阿甘正传, 评分: 9.5, 评价人数: 2145432
影片名: 泰坦尼克号, 评分: 9.5, 评价人数: 2171661
影片名: 这个杀手不太冷, 评分: 9.4, 评价人数: 2281227
使用csv.DictReader读取数据
# 导入csv库
import csv

with open('douban_data.csv', mode='r', encoding='utf-8-sig') as file:

    reader = csv.DictReader(file) # 创建一个csv.DictReader实例,以字典的形势读取文件中每一行的数据,键为header值为对应的数据

    for row in reader:

        print(f'影片名:{row["影片名"]},评分:{row["评分"]}, 评价人数:{row["评价人数"]}')

运行结果如下:

影片名:肖申克的救赎,评分:9.7, 评价人数:2874828
影片名:霸王别姬,评分:9.6, 评价人数:2123836
影片名:阿甘正传,评分:9.5, 评价人数:2145432
影片名:泰坦尼克号,评分:9.5, 评价人数:2171661
影片名:这个杀手不太冷,评分:9.4, 评价人数:2281227
写入csv文件

假设我们现在要把数据保存到如下的csv文件中

使用csv.writer写入数据
# 导入 csv 库
import csv

header_list = ['影片名', '评分', '评价人数']

data_list = [
    ['肖申克的救赎', '9.7', '2875474'],
    ['霸王别姬', '9.6', '2124240'],
    ['阿甘正传', '9.5', '2145856'],
    ['泰坦尼克号', '9.5', '2172139'],
    ['这个杀手不太冷', '9.4', '2281599']
    ]

with open('data.csv', mode='w', encoding='utf-8-sig', newline='') as file: # 若不加上newline=''则在文件中每一行下面都会加上空白行
    
    writer = csv.writer(file)

    # 写入 header,writerow()一次只能写入一行
    writer.writerow(header_list)

    # 写入数据,writerows() 一次可写入多行
    writer.writerows(data_list)
使用csv.DictWriter写入数据
# 导入 csv 库
import csv

header_list = ['影片名', '评分', '评价人数']

data_list = [
    {'影片名': '肖申克的救赎', '评分': '9.7', '评价人数': '2875474'},
    {'影片名': '霸王别姬', '评分': '9.6', '评价人数': '2124240'},
    {'影片名': '阿甘正传', '评分': '9.5', '评价人数': '2145856'},
    {'影片名': '泰坦尼克号', '评分': '9.5', '评价人数': '2172139'},
    {'影片名': '这个杀手不太冷', '评分': '9.4', '评价人数': '2281599'}
    ]

header_list = ['影片名', '评分', '评价人数']

with open('data.csv', mode='w', encoding='utf-8-sig', newline='') as file: # 若不加上newline=''则在文件中每一行下面都会加上空白行
    
    writer = csv.DictWriter(file, header_list) # 创建csv.DictWriter实例,并将header列表作为参数传入

    # 写入 header
    writer.writeheader()

    # 写入数据
    writer.writerows(data_list)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值