python读写csv的操作汇总_Python读写CSV

本文介绍了CSV文件的基本概念,包括其作为纯文本文件的特性及与Excel表格的区别。展示了如何使用Python的csv模块进行文件的读写操作,包括使用`csv.writer`和`csv.DictWriter`进行数据写入,以及`csv.reader`和`csv.DictReader`进行数据读取。通过实例代码演示了如何创建和操作CSV文件,适合初学者理解CSV在数据处理中的作用。
摘要由CSDN通过智能技术生成

csv文件的概念

这应该是你第一次接触csv这种格式的文件吧。那么什么是csv文件呢?

csv是"Comma-Separated Values(逗号分割的值)"的首字母缩写,它其实和txt文件一样,都是纯文本文件。但csv文件可以显示为电子表格的样式,所以我们也可以把csv文件视为一种简化版的电子表格。

简化版是什么意思呢?回顾一下我们常见的Excel表格,不仅有“居中”排版,表格边框等样式,还有各种Excel公式等其他功能,这些功能在csv文件中是不存在的。

正如概念中强调的一样,csv文件是纯文本文件,它只能存储数据。

值得注意的是,csv文件有多种打开方式,如果你使用文本编译器(如记事本)打开它,它就会以文本形式显示;但如果你使用常用的office软件(Excel表格,WPS表格,Numbers表格)打开,csv就会直接显示为表格样式。

下面的图片中,就是对同一份csv文件的不同显示方式,希望你能注意到文本形式中的逗号,每一个逗号都将数据分隔开来,就像表格里的边框分开不同的数据一样。

6ee175a68b11

如果只是记录数据,不对数据进行操作的话,相较于Excel表格,csv文件会更加简洁轻便。

使用Python来读写csv文件是非常容易的,因为实现csv的读取和写入功能的csv模块,是一个内置模块,我们可以直接使用。

当然,使用csv模块时,需要先导入它,即在代码一开始写入import csv。

打开csv文件

了解了什么是csv文件后,接下来就是要用Python来打开它。使用的函数你也很熟悉——open()。

是的,函数open()不仅可以打开txt文本文件,它也可以用来打开csv文件。使用open()打开的文件,都会返回一个文件对象。

与打开txt文本文件稍有不同的地方是,我们需要在open()中传入新的参数newline=''。根据Python官方文档的相关规定,当我们打开csv文件时,需要设置参数newline='',这样可以避免一些不必要的空行。

会产生空行的原因涉及了不同计算机系统的设计标准,这些问题比较深奥,你现在不必了解,只要记得Python官方推荐这么写就可以了。

CSV模块的使用

写入CSV文件

通过创建writer对象,主要用到2个方法。

writerow 写入一行

writerows 写入多行

使用DictWriter可以利用字典的方式把数据写入进去

读取CSV文件

通过reader()读取到的每一条数据是一个列表。可以通过下标方式获取具体某个值

通过DictReader()读取到的每一条数据是一个字典。可以通过按照字典的方式根据Key(列名)获取数据

csv读写操作(一)

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2020/12/28

# @Author : 记夕忆沧澜

# @File : python读写csv(1).py

# @Software: PyCharm

# @Desc:csv读写操作(一)

import csv

fieldnames = ['id', 'name', 'age', 'height']

rows = [

['1', '小明', '20', '172'],

['2', '小强', '40', '175'],

['3', '卡西', '26', '165'],

['4', '酱酱', '30', '169'],

['5', '卡普', '32', '180'],

]

with open('test.csv', 'w', encoding='utf-8', newline='') as f:

csv_writer = csv.writer(f)

csv_writer.writerow(fieldnames)

csv_writer.writerows(rows)

with open('test.csv', 'r', encoding='utf-8') as f:

csv_reader = csv.reader(f)

for row in csv_reader:

print(row)

csv读写操作(二)

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2020/12/28

# @Author : 记夕忆沧澜

# @File : python读写csv(2).py

# @Software: PyCharm

# @Desc:csv读写操作(二)

import csv

fieldnames = ['id', 'name', 'age', 'height']

rowdicts = [

{'id': 1, 'name': '小明', 'age': 20, 'height': 172},

{'id': 2, 'name': '小强', 'age': 40, 'height': 175},

{'id': 3, 'name': '卡西', 'age': 26, 'height': 165},

{'id': 4, 'name': '酱酱', 'age': 30, 'height': 169},

{'id': 5, 'name': '卡普', 'age': 32, 'height': 180}

]

with open('test.csv', 'w', encoding='utf-8', newline='') as f:

csv_writer = csv.DictWriter(f, fieldnames)

csv_writer.writeheader()

csv_writer.writerows(rowdicts)

with open('test.csv', 'r', encoding='utf-8') as f:

csv_reader = csv.DictReader(f)

for row in csv_reader:

print(row)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值