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编码保存在新文件里

 

posted @ 2021-01-06 15:33  森林326  阅读(1733)  评论(0编辑  收藏  举报