python csv库的简单使用(一分钟学会csv的读写)

Python csv库的简单使用

前言

写这篇文章的目的不是系统的对Python csv库进行说明,而是介绍最简单的、最基本的使用方法。

文章中的代码片段可以直接被使用,方便读者在工作中直接引用。

常用场景

读取csv文件

大家都知道csv文件的结构,第一行一般是字段名称,后续行是每条记录的数据。

我们读取文件的时候一般会希望直接读取数据,这时候就不要使用普通的csv.reader()了,我们直接使用csv.DictReader()。

看看下面的例子:

import csv
with open('names.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['first_name'], row['last_name'])

这是一个官方文档上的例子,通过with open打开了一个叫names.csv的csv,文件句柄为csvfile。

然后通过csv.DictReader()方法将其转换为csv操作句柄reader。

之后就可以使用reader按照字典的方式读取每行数据记录的内容了。

如果我还想读取第一行的字段名称,那可以这样获取:

import csv
with open('names.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['first_name'], row['last_name'])

    print(reader.fieldnames)

属性fieldnames是一个list,输出如下:

PS C:\Users\lenovo\Desktop> py .\csvOperationExample.py
zhang haha
li haha
zhao haha
sun haha
['first_name', 'last_name']

 写入csv文件

同样,我们抛弃csv.writer(),使用csv.DictWriter()替代。

我们再来看一个官方文档的例子:

import csv

with open('names.csv', 'w', newline='') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

首先使用with open创建一个空的名为names的csv文件,返回文件句柄csvfile。

之后利用list定义csv的字段:

fieldnames = ['first_name', 'last_name']

接下来使用csv.DictWriter创建csv操作句柄writer,到此位置csv文件还是空的。

下面向空csv文件写入字段行:

writer.writeheader() 

最后依次写入数据行:

writer.writeheader()
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

小结

1、使用csv.DictReader和csv.DictWriter可以更方便的区分和读取字段名行和数据行

2、with open用的很好,省去了file.close()的相关操作,能简则简是使用Python的初衷

3、上面分别介绍了读取和写入的方法,有的同学会问如何在一个csv文件中修改呢?答案是不去修改原csv文件,而是写一个新的

参考资料

csv — CSV File Reading and Writing — Python 3.9.5 documentation

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythoncsv是用于处理CSV(逗号分隔值)文件的标准CSV文件是一种常见的数据存储格式,它使用逗号作为字段之间的分隔符。 使用csv可以轻松地读取和写入CSV文件。下面是一些常用的csv函数和方法: 1. csv.reader(file, delimiter=','):创建一个CSV读取器对象,用于逐行读取CSV文件。可以指定分隔符,默认为逗号。 2. csv.writer(file, delimiter=','):创建一个CSV写入器对象,用于逐行写入CSV文件。可以指定分隔符,默认为逗号。 3. csv.DictReader(file, fieldnames=None):创建一个基于字典的CSV读取器对象,用于逐行读取CSV文件,并将每行数据转换为字典形式。可以指定字段名,默认使用文件的第一行作为字段名。 4. csv.DictWriter(file, fieldnames):创建一个基于字典的CSV写入器对象,用于逐行写入CSV文件,并将字典数据转换为CSV格式。需要指定字段名。 下面是一个简单的示例,演示如何使用csv读取和写入CSV文件: ```python import csv # 读取CSV文件 with open('data.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(row) # 写入CSV文件 data = [ ['Name', 'Age', 'City'], ['John', '25', 'New York'], ['Alice', '30', 'London'], ['Bob', '35', 'Paris'] ] with open('data.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(data) ``` 以上代码中,首先使用`csv.reader()`函数读取CSV文件,并使用`csv.writer()`函数写入CSV文件。在读取CSV文件时,可以使用`for`循环逐行读取每一行数据。在写入CSV文件时,使用`writerows()`方法将整个数据列表写入文件。 需要注意的是,在打开文件时,需要使用`newline=''`参数,以避免在Windows系统中出现额外的空行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值