在python中读取和写入CSV文件详情
作者:苏凉.py 发布时间:2021-01-21 22:34:51
前言
CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字为字符串类型)。如果CSV中有中文,应以utf-8编码读写.
1.导入CSV库
python中对csv文件有自带的库可以使用,当我们要对csv文件进行读写的时候直接导入即可。
import csv
2.对CSV文件进行读写
2.1 用列表形式写入CSV文件
语法:csv.writer(f):
writer支持writerow(列表)单行写入,和writerows(嵌套列表)批量写入多行,无须手动保存。
import csv
header = ['name','age','QQ_num','wechat']
data = [['suliang','21','787991021','lxzy787991021']]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
# 写
writer =csv.writer(fp)
# 设置第一行标题头
writer.writerow(header)
# 将数据写入
writer.writerows(data)
结果:
注意:打开文件时应指定格式为w, 文本写入.
打开文件时,指定不自动添加新行newline=‘’,否则每写入一行就或多一个空行。
2.2 用列表形式读取CSV文件
语法:csv.reader(f, delimiter=‘,’)
reader为生成器,每次读取一行,每行数据为列表格式,可以通过delimiter参数指定分隔符
import csv
with open('information.csv',encoding='utf-8')as fp:
reader = csv.reader(fp)
# 获取标题
header = next(reader)
print(header)
# 遍历数据
for i in reader:
print(i)
结果:
读取文件时文件路径务必要写对,不确定时可写绝对路径。要获取csv的内容则需要遍历再输出。
2.3 用字典形式写入csv文件
语法:csv.DicWriter(f):
写入时可使用writeheader()写入标题,然后使用writerow(字典格式数据行)或writerows(多行数据)
import csv
header = ['name','age']
data = [{'name':'suliang','age':'21'},
{'name':'xiaoming','age':'22'},
{'name':'xiaohu','age':'25'}]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
# 写
writer =csv.DictWriter(fp,header)
# 写入标题
writer.writeheader()
# 将数据写入
writer.writerows(data)
结果:
2.4 用字典形式读取csv文件
语法:csv.DicReader(f, delimiter=‘,’)
直接将标题和每一列数据组装成有序字典(OrderedDict)格式,无须再单独读取标题行
import csv
with open('information.csv',encoding='utf-8')as fp:
reader = csv.DictReader(fp)
for i in reader
print(i)
结果:
附:csv读写的模式
r:以读方式打开文件,可读取文件信息
w: 已写方式打开文件,可向文件写入信息。如文件存在,则清空,再写入
a:以追加模式打开文件,打开文件可指针移至末尾,文件不存在则创建
r+:以读写方式打开文件,可对文件进行读和写操作
w+:消除文件内容,以读写方式打开文件
a+:以读写方式打开文件,文件指针移至末尾
b:以二进制打开文件
来源:https://blog.csdn.net/weixin_46277553/article/details/124383210
猜你喜欢
- CentOS mysql安装还是很常用的软件,我就学习如何CentOS mysql安装,在这里拿出来和大家分享一下,希望对大家有用。Cent
- 网络开发的在分页上要是遇到数(几十)万以上的数据还是用ADO那样的分页会速度很慢的。有了存储过程速度就快多了。下面是本人用50万的数据进行的
- 刚刚心血来潮,编了一个国际域名查询的功能页面,比较简单,没有做什么美化和修饰,主要利用了服务器端的XMLHTTP访问第三方服务器实现域名查询
- chat.html <html> <head><title>asp之家-简单聊天&l
- 1、MySQL常用命令create database name; 创建数据库use databasename; 选择数据库drop data
- 聚合函数 count,max,min,avg,sum... select count (*) from T_Employee select
- 进程与线程的历史我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作系统是运行在硬件之上的软件
- 假设你有一套登录注册业务。一开始很简单,老板说只需要常规的注册登录就行。但是到了后面,接口被刷,老板然你在注册登录前加个验证码然后没过多久,
- 本文实例讲述了PHP封装的PDO数据库操作类。分享给大家供大家参考,具体如下:<?phpclass DatabaseHandler {
- 原理:自定义javascript中的oncontextmenu事件,然后使用div层模拟菜单。知道了这个原理结合美工相信你可以做出很漂亮的自
- 前言相当不错的 Javascript 编程风格规范,建议大家采用此规范编写 Javascript。原文链接: http://dojotool
- 优化数据库的注意事项:1、关键字段建立索引。2、使用存储过程,它使SQL变得更加灵活和高效。3、备份数据库和清除垃圾数据。4、SQL语句语法
- 做设计的时候,如何配色是经常让人头痛的问题,尽管很多时候,很多人都说对于色彩的掌握更多的是靠感觉,但是不得不说,感觉也是要有依据的。所以颜色
- 但是有时候,可以视看处进逻辑程度,可以把三者写成一个触发器,只是在其中稍作判断而已。 你可以根据从下面方法判断触发器是是处理了插入,删除还是
- 在蓝色看到的这个程序,不错!by:thornyzhl前天看到有个人写了能在网页中写字的程序,找不到了,我来个能擦写的....蛮有意思的阿.~
- 适配器模式Adapter Pattern是什么适配器模式是一种结构型模式,它可以将一个类的接口转换成客户端所期望的接口,从而使原本不兼容的类
- 前言字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习
- 数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性、可靠性和稳定性等方面都有很高的要求。下面
- PDO::lastInsertIdPDO::lastInsertId — 返回最后插入行的ID或序列值(PHP 5 >= 5.1.0,
- 相同记录行如何取最大值我想这个东西在作一些相关采购系统或成本报价系统应该很有用的吧取当前的最有效的价格.记录下来与大家分享!--测试数据&n