天天看點

(十三) 初遇python甚是喜愛之CSV檔案讀寫操作

各位讀者大大們大家好,今天學習python的CSV檔案讀寫操作,并記錄學習過程歡迎大家一起交流分享。

(十三) 初遇python甚是喜愛之CSV檔案讀寫操作

首先看我桌面的test.csv檔案:是一種使用逗号分隔的檔案格式,可以用excel打開,或者用txt打開:

(十三) 初遇python甚是喜愛之CSV檔案讀寫操作

接下來建立一個python檔案命名為py3_csv_op.py,在這個檔案中進行操作代碼編寫:

import csv
####第一種方式使用csv的reader() writer()
#讀取test.csv檔案,這裡指定了字元集編碼UTF-8-sig
encode = 'UTF-8-sig'
with open('test.csv','r',encoding=encode) as csv_file:
  #擷取csv reader讀取對象
  #delimiter參數預設值逗号 可不寫
  csv_reader = csv.reader(csv_file,delimiter=',')
  #打開test_copy.csv檔案
  with open('test_copy.csv','w',encoding=encode) as w_file:
    #擷取csv writer寫入對象
    #為了區分效果delimiter分隔符用-
    csv_writer = csv.writer(w_file,delimiter='-')
    #循環資料,寫入每一列到新的檔案中
    for line in csv_reader:
      csv_writer.writerow(line)
####第二種方式使用csv的dictionary reader
####dictionary writer方法實作
####本人更喜歡第二種方式
with open('test.csv','r',encoding=encode) as csv_file:
  csv_reader = csv.DictReader(csv_file,delimiter=',')
  with open('test_csv_copy.csv','w',encoding=encode) as new_file:
    #這裡定義新的csv字段名字隻保留姓名和性别
    fieldnames = ['姓名','性别']
    csv_writer = csv.DictWriter(new_file,fieldnames=fieldnames,delimiter='\t')
    #先把表頭寫入
    csv_writer.writeheader()
    for line in csv_reader:
    #擷取的每一行資料為字典形式    
    #eg:OrderedDict([('\ufeff姓名', '企鵝'), ('年齡', '23'), ('性别', '女')])  
      #删除掉年齡
      del line['年齡']
      csv_writer.writerow(line)           

複制

運作以上代碼,得到如下結果圖:

(十三) 初遇python甚是喜愛之CSV檔案讀寫操作
(十三) 初遇python甚是喜愛之CSV檔案讀寫操作

今天初學python的CSV檔案讀寫操作就到這裡!

關注公号

下面的是我的公衆号二維碼圖檔,歡迎關注。

(十三) 初遇python甚是喜愛之CSV檔案讀寫操作