Python模块之csv
一、csv模块简介
二、安装
三、简单使用
四、常见问题
一、csv模块简介
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
CSV文件缺点:
1.只能保存数字和文本
2.只能有一张表
CSV优点:
1.python库自带
2.用法简单
二、安装
python自带csv模块
三、简单使用
3.1 读文件内容
file = open('a.csv','r') RowsList = csv.reader(file) #file为文件对象 for perRow in RowsList: #遍历每一行,返回列表 for colum in perRow: #遍历一行中每个列单元格 print(colum) #打印单元格
3.2 写入文件内容
#什么时候用encoding指定编码,以下“四、常用问题”会有说明 file = open('a.csv','w',encoding='gbk',newline="") #newline="",可避免csv里有空行出现 writerObj = csv.writer(file) #file为文件对象,存在就覆盖,不存在就创建 writerObj.writerow([7,'你好']) #第一行A1单元格写入7,B1单元格写入你好 #存入数据格式可以是列表或者元组皆可 writerObj.writerows([[8,'yes'],[9,'no']]) #承接上面顺序,A2=8,B2=yes,A3=9,B3=no #writerows写入所有多行内容
四、常见问题
4.1 open函数里不指定encoding,那它的编码方式是什么?
以下文章里有说明,见红色字体
https://www.cnblogs.com/lisenlin/articles/8870697.html#2
4.2 windows下打开csv文件显示乱码
Windows直接打开csv文件,中文系统是以GBK方式打开的
如果csv文件在linux或者其他有指定操作系统被创建时,或者在windows下指定了encoding不是gbk编码下被创建,在windows下打开就会乱码
解决方法一:
在起源端以GBK编码保存
解决方法二:
在呈现端将UTF8转换成GBK编码后再打开(可直接使用如下代码)
import csv sourceFile = input('请输入源文件名:') #比如a.csv destinationFile = input('转换后生成新文件名:') #比如a_new.csv with open(sourceFile,'r',encoding='utf-8') as f_old,\ open(destinationFile,'w',encoding='gbk',newline='') as f_new: contents = csv.reader(f_old) mywriter = csv.writer(f_new) mywriter.writerows(contents) #将utf8编码文件内容以GBK编码保存在新文件里