Python中csv文件的寫入與讀取方法例子
1.csv文件介紹
CSV文件是一種常見的數(shù)據(jù)格式,它以逗號分隔不同的字段,每行表示一個數(shù)據(jù)記錄。在Python中,我們可以使用csv模塊來讀取和寫入CSV文件。
2.寫入CSV文件
在Python中,我們可以使用csv模塊的writer對象來寫入CSV文件。下面是一個例子:
import csv
# 創(chuàng)建要寫入的數(shù)據(jù)
data = [
['張三', 20, '男'],
['李四', 25, '女'],
['王五', 30, '男']
]
# 打開文件,指定寫入模式
with open('data.csv', 'w', newline='') as file:
# 創(chuàng)建csv寫入對象
writer = csv.writer(file)
# 寫入表頭
writer.writerow(['姓名', '年齡', '性別'])
# 寫入數(shù)據(jù)
writer.writerows(data)在上面的例子中,我們首先創(chuàng)建了要寫入的數(shù)據(jù),它是一個包含多個列表的列表。然后使用open()函數(shù)打開文件,并指定寫入模式。newline=''表示不使用額外的換行符。接著創(chuàng)建了一個csv寫入對象writer,使用writerow()方法寫入表頭,使用writerows()方法寫入數(shù)據(jù)。最后,使用with語句來自動關(guān)閉文件。
需要注意的是,寫入CSV文件時,需要將數(shù)據(jù)轉(zhuǎn)換成字符串格式。如果寫入的數(shù)據(jù)中包含逗號、雙引號等特殊字符,需要進(jìn)行處理。例如:
import csv
# 創(chuàng)建要寫入的數(shù)據(jù)
data = [
['張三', 20, '男'],
['李四', 25, '女'],
['王五', 30, '男'],
['"Tom, Jerry"', 35, '男']
]
# 打開文件,指定寫入模式
with open('data.csv', 'w', newline='') as file:
# 創(chuàng)建csv寫入對象
writer = csv.writer(file)
# 寫入表頭
writer.writerow(['姓名', '年齡', '性別'])
# 寫入數(shù)據(jù)
for row in data:
# 將包含特殊字符的數(shù)據(jù)進(jìn)行處理
row[0] = row[0].replace('"', '""')
row[0] = f'"{row[0]}"'
writer.writerow(row)在上面的例子中,我們創(chuàng)建了一個包含特殊字符的數(shù)據(jù),它包含逗號和雙引號。為了寫入這個數(shù)據(jù),我們需要將雙引號進(jìn)行轉(zhuǎn)義,并在數(shù)據(jù)前后加上雙引號。具體來說,我們使用replace()方法將雙引號替換成兩個雙引號,然后使用f-string將數(shù)據(jù)前后加上雙引號。
3.讀取CSV文件
在Python中,我們可以使用csv模塊的reader對象來讀取CSV文件。下面是一個例子:
import csv
# 打開文件,指定讀取模式
with open('data.csv', 'r') as file:
# 創(chuàng)建csv讀取對象
reader = csv.reader(file)
# 遍歷每一行數(shù)據(jù)
for row in reader:
print(row)在上面的例子中,我們使用open()函數(shù)打開文件,并指定讀取模式。然后創(chuàng)建了一個csv讀取對象reader,使用for循環(huán)遍歷每一行數(shù)據(jù),并使用print()函數(shù)輸出。
需要注意的是,在讀取CSV文件時,每一行數(shù)據(jù)都會被解析成一個列表。如果CSV文件中有表頭,第一行數(shù)據(jù)就是表頭,可以使用next()函數(shù)跳過:
import csv
# 打開文件,指定讀取模式
with open('data.csv', 'r') as file:
# 創(chuàng)建csv讀取對象
reader = csv.reader(file)
# 跳過表頭
next(reader)
# 遍歷每一行數(shù)據(jù)
for row in reader:
print(row)在上面的例子中,我們使用next()函數(shù)跳過了表頭。
另外,如果CSV文件中包含特殊字符,例如逗號、雙引號等,需要使用csv.reader的quotechar參數(shù)來指定轉(zhuǎn)義字符。例如:
import csv
# 打開文件,指定讀取模式
with open('data.csv', 'r') as file:
# 創(chuàng)建csv讀取對象
reader = csv.reader(file, quotechar='"')
# 遍歷每一行數(shù)據(jù)
for row in reader:
print(row)在上面的例子中,我們使用quotechar='"'來指定雙引號為轉(zhuǎn)義字符。這樣,包含雙引號的數(shù)據(jù)就可以正確解析了。
總結(jié)
到此這篇關(guān)于Python中csv文件的寫入與讀取的文章就介紹到這了,更多相關(guān)Python csv文件寫入與讀取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Flask框架實現(xiàn)簡單加法工具過程解析
這篇文章主要介紹了Python Flask框架實現(xiàn)簡單加法工具過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
分析運(yùn)行中的 Python 進(jìn)程詳細(xì)解析
這篇文章主要介紹了分析運(yùn)行中的 Python 進(jìn)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
利用Python實現(xiàn)Windows定時關(guān)機(jī)功能
是最初的幾個爬蟲,讓我認(rèn)識了Python這個新朋友,雖然才剛認(rèn)識了幾天,但感覺有種莫名的默契感。下面通過這篇文章給大家介紹Python實現(xiàn)Windows定時關(guān)機(jī)功能,需要的朋友可以參考下2017-03-03
python命令行參數(shù)解析OptionParser類用法實例
這篇文章主要介紹了python命令行參數(shù)解析OptionParser類用法實例,需要的朋友可以參考下2014-10-10
python基礎(chǔ)教程之?dāng)?shù)字處理(math)模塊詳解
這篇文章主要介紹了pythonr的數(shù)字處理模塊知識(math),需要的朋友可以參考下2014-03-03
matplotlib制作雷達(dá)圖報錯ValueError的實現(xiàn)
這篇文章主要介紹了matplotlib制作雷達(dá)圖報錯ValueError的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

