在python中讀取和寫入CSV文件詳情

前言

CSV(Comma-Separated Values)即逗號分隔值,一種以逗號分隔按行存儲的文本文件,所有的值都表現為字符串類型(註意:數字為字符串類型)。如果CSV中有中文,應以utf-8編碼讀寫.

1.導入CSV庫

python中對csv文件有自帶的庫可以使用,當我們要對csv文件進行讀寫的時候直接導入即可。

import csv

2.對CSV文件進行讀寫

2.1 用列表形式寫入CSV文件

語法:csv.writer(f):
writer支持writerow(列表)單行寫入,和writerows(嵌套列表)批量寫入多行,無須手動保存。

import csv
header = ['name','age','QQ_num','wechat']
data = [['suliang','21','787991021','lxzy787991021']]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
    # 寫
    writer =csv.writer(fp)
    # 設置第一行標題頭
    writer.writerow(header)
    # 將數據寫入
    writer.writerows(data)

結果:

註意:打開文件時應指定格式為w, 文本寫入.
打開文件時,指定不自動添加新行newline=‘’,否則每寫入一行就或多一個空行。

2.2 用列表形式讀取CSV文件

語法:csv.reader(f, delimiter=‘,’)
reader為生成器,每次讀取一行,每行數據為列表格式,可以通過delimiter參數指定分隔符

import csv

with open('information.csv',encoding='utf-8')as fp:
    reader = csv.reader(fp)
    # 獲取標題
    header = next(reader)
    print(header)
    # 遍歷數據
    for i in reader:
        print(i)

結果:

讀取文件時文件路徑務必要寫對,不確定時可寫絕對路徑。要獲取csv的內容則需要遍歷再輸出。

2.3 用字典形式寫入csv文件

語法:csv.DicWriter(f):
寫入時可使用writeheader()寫入標題,然後使用writerow(字典格式數據行)或writerows(多行數據)

import csv
header = ['name','age']
data = [{'name':'suliang','age':'21'},
        {'name':'xiaoming','age':'22'},
        {'name':'xiaohu','age':'25'}]
with open ('information.csv','w',encoding='utf-8',newline='') as fp:
    # 寫
    writer =csv.DictWriter(fp,header)
    # 寫入標題
    writer.writeheader()
    # 將數據寫入
    writer.writerows(data)

結果:

2.4 用字典形式讀取csv文件

語法:csv.DicReader(f, delimiter=‘,’)
直接將標題和每一列數據組裝成有序字典(OrderedDict)格式,無須再單獨讀取標題行

import csv
with open('information.csv',encoding='utf-8')as fp:
    reader = csv.DictReader(fp)
    for i in reader
        print(i)

結果:

附:csv讀寫的模式

  • r:以讀方式打開文件,可讀取文件信息
  • w: 已寫方式打開文件,可向文件寫入信息。如文件存在,則清空,再寫入
  • a:以追加模式打開文件,打開文件可指針移至末尾,文件不存在則創建
  • r+:以讀寫方式打開文件,可對文件進行讀和寫操作
  • w+:消除文件內容,以讀寫方式打開文件
  • a+:以讀寫方式打開文件,文件指針移至末尾
  • b:以二進制打開文件

結語

到此這篇關於在python中讀取和寫入CSV文件詳情的文章就介紹到這瞭,更多相關python讀寫CSV文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: