Python 寫入csv 檔案 - ShengYu Talk
文章推薦指數: 80 %
本篇介紹如何用python write csv 檔案,csv 檔案格式是常用格式,以下將示範如何用python 的內建csv 模組的csv.writer 來寫入csv 檔案。
2020-01-29
Python教學
本篇介紹如何用pythonwritecsv檔案,csv檔案格式是常用格式,以下將示範如何用python的內建csv模組的csv.writer來寫入csv檔案。
Python寫入csv的基本用法
把list裡的資料寫入csv
把2維list裡的資料寫入csv
把dict裡的資料寫入csv
用numpy套件寫入csv
用pandas套件寫入csvPython寫入csv的基本用法這邊介紹Python使用內建的csv模組寫入csv檔的基本用法,以下範例是使用withopen的寫法來開檔,之後在使用csv.writer取得writer,之後可以呼叫writerow將每行的數值寫入,記得要設定newline的值,否則Python寫入輸出的csv檔會多個空行。
Pythonwritecsv用法範例如下,python3-csv-write2.py1234567891011#!/usr/bin/envpython3#-*-coding:utf-8-*-importcsvpath='output_data.csv'withopen(path,'w',newline='')ascsvfile:writer=csv.writer(csvfile)writer.writerow(['No','Name','Score'])writer.writerow([1,'Tom',87.3])writer.writerow([2,'Mary',76.4])writer.writerow([3,'Mark',65.5])
輸出結果如下:1234No,Name,Score1,Tom,87.32,Mary,76.43,Mark,65.5
把list裡的資料寫入csv假如我們要寫入的資料是存放在list的話可以這樣子寫,python3-csv-write3.py123456789101112131415#!/usr/bin/envpython3#-*-coding:utf-8-*-importcsvheaders=['No','Name','Score']ids=[1,2,3]names=['Tom','Mary','Mark']scores=[87.3,76.4,65.5]path='output_data.csv'withopen(path,'w',newline='')ascsvfile:writer=csv.writer(csvfile)writer.writerow(headers)foriinrange(len(ids)):writer.writerow([ids[i],names[i],scores[i]])
輸出結果同上。
把2維list裡的資料寫入csv假如我們要寫入的資料是2維list的話可以這樣子寫,python3-csv-write4.py123456789101112131415#!/usr/bin/envpython3#-*-coding:utf-8-*-importcsvmy2dlist=[['No','Name','Score'],[1,'Tom',87.3],[2,'Mary',76.4],[3,'Mark',65.5]]path='output_data.csv'withopen(path,'w',newline='')ascsvfile:writer=csv.writer(csvfile)writer.writerows(my2dlist)
輸出結果同上。
把dict裡的資料寫入csv假如我們要寫入的資料是存放在dict的話可以這樣子寫,python3-csv-write5.py123456789101112131415161718#!/usr/bin/envpython3#-*-coding:utf-8-*-importcsvmydict1={'No':1,'Name':'Tom','Score':87.3}mydict2={'No':2,'Name':'Mary','Score':76.4}mydict3={'No':3,'Name':'Mark','Score':65.5}path='output_data.csv'withopen(path,'w',newline='')ascsvfile:writer=csv.writer(csvfile)headers=['No','Name','Score']writer=csv.DictWriter(csvfile,fieldnames=headers)writer.writeheader()writer.writerow(mydict1)writer.writerow(mydict2)writer.writerow(mydict3)
寫得更好的點話,可以把這3個dict放在list裡,python3-csv-write6.py12345678910111213141516171819#!/usr/bin/envpython3#-*-coding:utf-8-*-importcsvmylist=[{'No':1,'Name':'Tom','Score':87.3},#dict{'No':2,'Name':'Mary','Score':76.4},#dict{'No':3,'Name':'Mark','Score':65.5}#dict]path='output_data.csv'withopen(path,'w',newline='')ascsvfile:writer=csv.writer(csvfile)headers=['No','Name','Score']writer=csv.DictWriter(csvfile,fieldnames=headers)writer.writeheader()foriinrange(len(mylist)):writer.writerow(mylist[i])
輸出結果同上。
用numpy套件寫入csv前面的方法都是使用內建的csv模組,這邊要介紹使用numpy模組來寫入csv檔,以下用np.savetxt()將2維的list寫入csv,python3-csv-write7.py12345678910111213#!/usr/bin/envpython3#-*-coding:utf-8-*-importnumpyasnpmy2dlist=[['No','Name','Score'],[1,'Tom',87.3],[2,'Mary',76.4],[3,'Mark',65.5]]path='output_data.csv'np.savetxt(path,my2dlist,delimiter=',',fmt='%s')
輸出結果同上。
假如是要將numpyarray寫入csv檔的話,就像這樣寫,python3-csv-write8.py12345678910111213#!/usr/bin/envpython3#-*-coding:utf-8-*-importnumpyasnpmy2dlist=np.asarray([['No','Name','Score'],[1,'Tom',87.3],[2,'Mary',76.4],[3,'Mark',65.5]])path='output_data.csv'np.savetxt(path,my2dlist,delimiter=',',fmt='%s')
輸出結果同上。
用pandas套件將list寫入csv這邊要介紹使用pandas模組來將2維的list寫入csv檔,python3-csv-write9.py1234567891011121314#!/usr/bin/envpython3#-*-coding:utf-8-*-importpandasaspdheaders=['No','Name','Score']my2dlist=[[1,'Tom',87.3],[2,'Mary',76.4],[3,'Mark',65.5]]path='output_data.csv'df=pd.DataFrame(columns=headers,data=my2dlist)df.to_csv(path)#index=True
輸出的結果如下,發現左邊有多一欄index索引欄位,1234,Name,No,Score0,Tom,1,87.31,Mary,2,76.42,Mark,3,65.5
如果要去除左邊的index索引欄位的話在to_csv()加入index=False即可,1df.to_csv(path,index=False)
輸出的結果如下,就沒有左邊的index那一欄,這樣就跟原本的輸出一樣了,1234No,Name,Score1,Tom,87.32,Mary,76.43,Mark,65.5
用pandas套件將dict寫入csv這邊要介紹使用pandas模組來將dict寫入csv檔,python3-csv-write10.py123456789101112#!/usr/bin/envpython3#-*-coding:utf-8-*-importpandasaspdids=[1,2,3]names=['Tom','Mary','Mark']scores=[87.3,76.4,65.5]mydict={'No':ids,'Name':names,'Score':scores}path='output_data.csv'df=pd.DataFrame(mydict)df.to_csv(path,index=False)
結果跟原本的差不多,只是欄位順序沒有按照我們放入的順序而已,1234Name,No,ScoreTom,1,87.3Mary,2,76.4Mark,3,65.5
以上就是Python寫入csv檔案的介紹,如果你覺得我的文章寫得不錯、對你有幫助的話記得Facebook按讚支持一下!
其它參考csv—CSVFileReadingandWriting—Python3documentationhttps://docs.python.org/3/library/csv.html#csv.writer
相關主題Python讀取csv檔案Python讀檔,讀取txt文字檔Python讀寫檔案Python使用numpy讀取csv資料再畫圖Pythonnumpy寫入csv
Newer
Python讀取yaml檔案
Older
Pythonreplace取代字串用法與範例
精選文章
Python基礎教學目錄
C/C++入門教學目錄
Linux常用指令教學懶人包
最新文章
macOS安裝Node.js的方法
PythonSimpleHTTPServerWithUpload上傳檔案功能
adb查詢AndroidSDK版本號(adbshellgetprop)
adb查詢Android版本號(adbshellgetprop)
VisualStudioCode關閉存檔自動排版的2種方式
粉絲專頁
分類
Arduino4C/C++教學150Github13Git教學19OpenCV教學8Projects6Python教學225Qt教學7
首頁
Python教學
C/C++教學
歸檔
標籤
Projects
關於我
延伸文章資訊
- 1Python 讀取與寫入CSV 檔案教學與範例 - G. T. Wang
這裡介紹如何在Python 中使用 csv 模組,讀取與寫入逗點分隔檔。 ... import csv # 開啟輸出的CSV 檔案 with open('output.csv', 'w', ne...
- 2Python CSV: Read and Write CSV files - Programiz
To write to a CSV file in Python, we can use the csv.writer() function. The csv.writer() function...
- 3csv — CSV File Reading and Writing — Python 3.10.7 ...
The csv module implements classes to read and write tabular data in CSV format. ... The Python En...
- 4[Day 04] CSV 讀寫操作 - iT 邦幫忙
The csv module 's reader and writer objects read and write sequences. ... 參考來源: 13.1. csv — CSV F...
- 5How to Write to CSV Files in Python
Steps for writing a CSV file · First, open the CSV file for writing ( w mode) by using the open()...