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