最後更新日期:2021 年 01 月 2 日

一、寫入 csv 檔案

1、以一般方式寫入

import csv

f = open('test.csv', 'w', newline='', encoding='utf-8')
writer = csv.writer(f, delimiter=',')
writer.writerow(['姓名', '年齡'])
writer.writerow(['王小明', '18'])

# 請務必記得關閉檔案
f.close()

2、使用環境管理器的方式寫入

import csv

with open('test.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f, delimiter=',')
    writer.writerow(['姓名', '年齡'])
    writer.writerow(['王小明', '18'])

二、讀取 csv 檔案

1、以一般方式讀取 csv 檔案

import csv

f = open('test.csv', newline='', encoding='utf-8') 
rows = csv.reader(f, delimiter=',')
for row in rows:
    print(row)

# 請務必記得關閉檔案
f.close()

2、使用環境管理器的方式讀取 csv 檔案

import csv

with open('test.csv', newline='', encoding='utf-8') as f:
    rows = csv.reader(f, delimiter=',')
    for row in rows:
        print(row)

三、寫入 dictionary

import csv

with open('test.csv', 'w', newline='', encoding='utf-8') as f:
    # 定義欄位名稱,是的! dictionary 的鍵值可以是中文
    fieldnames = ['姓名', '年齡']

    # 將 dictionary 寫入 CSV 檔
    writer = csv.DictWriter(f, fieldnames=fieldnames, delimiter=',')

    # 寫入第一列,也就是欄位名稱
    writer.writeheader()

    # 寫入資料
    writer.writerow({'姓名': '王老五', '年齡': 35})

四、直接寫入二維串列

import csv

# 二維串列
table = [
    ['姓名', '年齡'],
    ['王志明', 18],
    ['陳春嬌', 18]
]

with open('test.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f, delimiter=',')

    # 寫入二維表格
    writer.writerows(table)

注意事項

1、我用 Excel2007 開 utf-8 編碼的 csv 檔時,會發生錯誤,所以我改用 Open Office 的 Calc 來開,就可以正常的使用了。

2、使用「環境管理器」的優點是不用再去處理「檔案關閉」的問題。

Last modified: 2021-01-02

Author

Comments

Write a Reply or Comment

Your email address will not be published.