Python讀取寫入csv檔案

Python 3 匯入匯出.csv檔

讀入檔案

  • 直接讀取
  • 自訂分隔符號
# library
import csv

# 開啟 CSV 檔案
with open('yourfile.csv', newline='') as csvFile:

  # 1.直接讀取:讀取 CSV 檔案內容
  rows = csv.reader(csvFile)

  # 2.自訂分隔符號:讀取 CSV 檔案內容
  rows = csv.reader(csvFile, delimiter=',')

  # 迴圈輸出 每一列
  for row in rows:
    print(row)
  • 轉成dictionary(字典):自動把第一列(row)當作欄位的名稱,將第二列以後的每一列轉為字典內容,之後便可以直接使用欄位名稱來存取資料。
# library
import csv

# 開啟 CSV 檔案
with open('yourfile.csv', newline='') as csvFile:

  # 3.轉成一個 dictionary, 讀取 CSV 檔內容,將每一列轉成字典
  rows = csv.DictReader(csvFile)

  # 迴圈輸出 指定欄位
  for row in rows:
     print(row['title'],row['req_sent'], row['connections'])

寫出檔案

  • 直接寫出
  • 寫出多維陣列
import csv

# 開啟輸出的 CSV 檔案
with open('yourOutput.csv', 'w', newline='') as csvFile:
  # 建立 CSV 檔寫入器
  writer = csv.writer(csvFile)

  # 1.直接寫出-標題
  writer.writerow(['姓名','年齡','電話','地址'])

  # 1.直接寫出-資料
  writer.writerow(['葉大雄',18, '0911-123-123', '台北市火車站大廳'])
  writer.writerow(['林靜香',26, '0911-456-456', '台北市中山北路二段'])


  # 2.寫出多維陣列
  Table = [['姓名','年齡','電話','地址'],['葉大雄',18, '0911-123-123', '台北市火車站大廳'],['林靜香',26, '0911-456-456', '台北市中山北路二段']]
  writer.writerows(Table)

輸出的.csv結果

  • 指定分隔符號
import csv

# 開啟輸出的 CSV 檔案
with open('yourOutput.csv', 'w', newline='') as csvFile:
  # 建立 CSV 檔寫入器
  writer = csv.writer(csvFile)

  # 指定分隔符號
  writer = csv.writer(csvfile, delimiter=';')

  # 寫出標題
  writer.writerow(['姓名','年齡','電話','地址'])
  
  # 寫出資料
  writer.writerow(['葉大雄',18, '0911-123-123', '台北市火車站大廳'])
  writer.writerow(['林靜香',26, '0911-456-456', '台北市中山北路二段'])

輸出的.csv結果,將默認的,改為;

  • 寫出Dictionary(字典)
import csv

with open('output.csv', 'w', newline='') as csvFile:
  # 定義欄位
  fieldNames = ['姓名', '成績', '班級']

  # 將 dictionary 寫入 CSV 檔
  writer = csv.DictWriter(csvFile, fieldNames)

  # 寫入第一列的欄位名稱
  writer.writeheader()

  # 寫入資料
  writer.writerow({'姓名': '林靜香','成績':81, '班級': 'a班'})
  writer.writerow({'姓名': '葉大雄','成績':65, '班級': 'b班'})

輸出的.csv結果


參考資料:Python 3 lib csv Document

 


人生美好~別浪費腦容量記程式碼 :- ) 

作者:CYL
出處:http://dotblogs.com.tw/cylcode
資料來源都會特別註明,有興趣都可查詢原出處,本站皆經過整理才分享,如有轉載請顯示出處及作者,感謝。