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