在Python中進(jìn)行CSV文件的讀取與寫入操作
1 引言
在數(shù)據(jù)處理和數(shù)據(jù)分析領(lǐng)域,CSV (逗號分隔值) 文件是一種常見的文件格式,用于存儲表格數(shù)據(jù)。Python 通過內(nèi)置的 csv 模塊提供了對 CSV 文件的讀寫支持,使得處理這種類型的文件變得簡單高效。本文將詳細(xì)介紹如何在 Python 中進(jìn)行 CSV 文件的讀取和寫入操作。
2 CSV 文件簡介
CSV 文件是一種簡單的文本文件,其中的數(shù)據(jù)由逗號分隔。每行代表一個數(shù)據(jù)記錄,每個記錄可以包含多個字段。CSV 文件被廣泛用于數(shù)據(jù)交換和數(shù)據(jù)存儲。
3 Python 中的 csv 模塊
Python 的 csv 模塊提供了一系列函數(shù)來讀取和寫入 CSV 文件。它可以處理各種類型的 CSV 數(shù)據(jù),包括不同的分隔符和引號約定。
4 寫入 CSV 文件
4.1 基本用法
import csv
# 數(shù)據(jù)
data = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles']
]
# 寫入 CSV 文件
with open('example.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
4.2 高級用法
使用 DictWriter 寫入 CSV,提供了字段名的映射。
with open('example.csv', 'w', newline='') as file:
fields = ['Name', 'Age', 'City']
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
writer.writerow({'Name': 'Alice', 'Age': 30, 'City': 'New York'})
writer.writerow({'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'})
5 讀取 CSV 文件
5.1 基本用法
# 讀取 CSV 文件
with open('example.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
5.2 高級用法
使用 DictReader 讀取 CSV,每行數(shù)據(jù)被映射到一個字典。
with open('example.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
6 實例演示
以下是一個 Python 示例,演示如何使用 csv 模塊來讀取和寫入 CSV 文件。這個示例將包含兩個主要部分:一個用于寫入 CSV 文件的函數(shù)和另一個用于讀取 CSV 文件的函數(shù)。我們將這些功能封裝在一個名為 csv_example.py 的 Python 文件中。
# csv_example.py
import csv
def write_csv(file_name, data, field_names=None):
""" 寫入 CSV 文件 """
with open(file_name, 'w', newline='', encoding='utf-8') as file:
if field_names:
writer = csv.DictWriter(file, fieldnames=field_names)
writer.writeheader()
writer.writerows(data)
else:
writer = csv.writer(file)
writer.writerows(data)
def read_csv(file_name):
""" 讀取 CSV 文件 """
with open(file_name, 'r', newline='', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row)
def main():
# CSV 文件名
file_name = 'example.csv'
# 數(shù)據(jù) - 字典格式
data_dict = [
{'Name': 'Alice', 'Age': 30, 'City': 'New York'},
{'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'}
]
# 數(shù)據(jù) - 列表格式
data_list = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles']
]
# 寫入 CSV 文件
write_csv(file_name, data_dict, field_names=['Name', 'Age', 'City'])
# 或者使用列表數(shù)據(jù)
# write_csv(file_name, data_list)
# 讀取 CSV 文件
read_csv(file_name)
if __name__ == '__main__':
main()
運(yùn)行以上代碼控制臺輸出結(jié)果:[‘Name’, ‘Age’, ‘City’]
[‘Alice’, ‘30’, ‘New York’]
[‘Bob’, ‘25’, ‘Los Angeles’]
并生成文件:“example.csv”,內(nèi)容如下:

這個腳本定義了兩個函數(shù):write_csv 和 read_csv。write_csv 函數(shù)可以根據(jù)傳入的數(shù)據(jù)格式(字典或列表)將數(shù)據(jù)寫入 CSV 文件。read_csv 函數(shù)則用于讀取 CSV 文件并打印其內(nèi)容。main 函數(shù)中整合了這些操作的流程。運(yùn)行這個腳本將會創(chuàng)建一個名為 example.csv 的文件,并在其中寫入數(shù)據(jù),然后讀取并打印出這些數(shù)據(jù)。
7 注意事項
- 讀寫文件時,確保使用
newline=''參數(shù)來防止在不同平臺上的換行符問題。 - 對于包含特殊字符的字段,如逗號或引號,
csv模塊可以正確處理它們。 - 在使用
DictReader和DictWriter時,字段名的順序是很重要的。
8 總結(jié)
Python 中的 csv 模塊為處理 CSV 文件提供了強(qiáng)大且靈活的工具。無論您是在進(jìn)行數(shù)據(jù)分析還是簡單的數(shù)據(jù)導(dǎo)入導(dǎo)出,掌握如何有效地讀寫 CSV 文件都是一項非常有用的技能。
以上就是在Python中進(jìn)行CSV文件的讀取與寫入操作的詳細(xì)內(nèi)容,更多關(guān)于Python CSV文件讀取與寫入的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實現(xiàn)人人對戰(zhàn)的五子棋游戲
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)人人對戰(zhàn)的五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
python學(xué)生信息管理系統(tǒng)實現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了python學(xué)生信息管理系統(tǒng)的實現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06
Python實現(xiàn)兩個list對應(yīng)元素相減操作示例
這篇文章主要介紹了Python實現(xiàn)兩個list對應(yīng)元素相減操作,結(jié)合具體實例形式分析了list對應(yīng)元素操作的簡單實現(xiàn)技巧,需要的朋友可以參考下2017-06-06
Python中的pathlib.Path為什么不繼承str詳解
這篇文章主要給大家介紹了關(guān)于Python中pathlib.Path為什么不繼承str的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
使用Python編寫類UNIX系統(tǒng)的命令行工具的教程
這篇文章主要介紹了使用Python編寫類UNIX系統(tǒng)的命令行工具的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04
Python調(diào)用其他.py文件函數(shù)的常見場景及實現(xiàn)方法詳解
在?Python?程序運(yùn)行時,如何調(diào)用另一個.py文件中的函數(shù),這是?Python?開發(fā)中非?;A(chǔ)且常用的操作,本文介紹了Python中調(diào)用其他.py文件函數(shù)的幾種常見場景及實現(xiàn)方法,大家可以根據(jù)需要進(jìn)行選擇2026-02-02
Python 字符串操作實現(xiàn)代碼(截取/替換/查找/分割)
這篇文章主要介紹了Python 字符串截取/替換/查找/分割等實現(xiàn)方法,需要的朋友可以參考下2013-06-06

