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編碼保存在新文件里

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM