Python讀寫csv文件的超詳細(xì)步驟
要在 Python 中寫入 CSV,請(qǐng)使用 Python 的 csv 模塊。
例如,讓我們將一個(gè)字符串列表寫入一個(gè)新的 CSV 文件:
import csv data = ["This", "is", "a", "Test"] with open('example.csv', 'w') as file: writer = csv.writer(file) writer.writerow(data)
因此,您會(huì)在當(dāng)前文件夾中看到一個(gè)名為 example.csv 的文件。
用 Python 編寫 CSV 的 4 個(gè)步驟
要在 Python 中寫入 CSV 文件:
1. 以寫入模式打開(kāi) CSV 文件。 這是使用 open() 函數(shù)發(fā)生的。 給它文件的路徑作為第一個(gè)參數(shù)。 將模式指定為第二個(gè)參數(shù)(“r”表示讀取,“w”表示寫入)。
2. 創(chuàng)建 CSV 編寫器對(duì)象。 為此,創(chuàng)建一個(gè) csv 模塊的 writer() 對(duì)象,并將打開(kāi)的文件作為其參數(shù)傳遞。
3. 將數(shù)據(jù)寫入 CSV 文件。 使用 writer 對(duì)象的 writerow() 函數(shù)將數(shù)據(jù)寫入 CSV 文件。
4. 關(guān)閉 CSV 文件,使用文件的 close() 方法。
這是一個(gè)說(shuō)明此過(guò)程的示例:
import csv # 1. file = open('test.csv', 'w') # 2. writer = csv.writer(file) # 3. data = ["This", "is", "a", "Test"] writer.writerow(data) # 4. file.close()
這段代碼在當(dāng)前文件夾中創(chuàng)建了一個(gè)名為 test.csv 的文件。
如果指定的文件不存在,open() 函數(shù)將打開(kāi)一個(gè)新文件。 如果是,則打開(kāi)現(xiàn)有文件。
速寫
要縮短寫入 CSV 的時(shí)間,請(qǐng)使用 with 語(yǔ)句打開(kāi)文件。 這樣你就不用擔(dān)心自己關(guān)閉文件了。 with 會(huì)自動(dòng)處理該部分。
例如:
import csv # 1. step with open('test.csv', 'w') as file: # 2. step writer = csv.writer(file) # 3. step data = ["This", "is", "a", "Test"] writer.writerow(data)
這將在當(dāng)前文件夾中創(chuàng)建一個(gè)名為 test.csv 的新 CSV 文件,并將字符串列表寫入其中。
如何在 Python 中將非 ASCII 字符寫入 CSV
默認(rèn)情況下,您不能將非 ASCII 字符寫入 CSV 文件。
要支持將非 ASCII 值寫入 CSV 文件,請(qǐng)?jiān)?open() 調(diào)用中將字符編碼指定為第三個(gè)參數(shù)。
with open('PATH_TO_FILE.csv', 'w', encoding="UTF8")
其余過(guò)程遵循您之前學(xué)到的步驟。
如何為 CSV 文件創(chuàng)建標(biāo)題
到目前為止,您已經(jīng)創(chuàng)建了缺少結(jié)構(gòu)的 CSV 文件。
在 Python 中,可以使用用于將任何數(shù)據(jù)寫入 CSV
writerow() 函數(shù)為任何 CSV 文件編寫標(biāo)頭。
例子: 讓我們創(chuàng)建一個(gè)包含學(xué)生數(shù)據(jù)的示例 CSV 文件。
為了很好地構(gòu)建數(shù)據(jù),為學(xué)生創(chuàng)建一個(gè)標(biāo)題并將其插入 CSV 文件的開(kāi)頭。 在此之后,您可以按照之前的相同步驟將數(shù)據(jù)寫入 CSV 文件。
這是代碼:
import csv # Define the structure of the data student_header = ['name', 'age', 'major', 'minor'] # Define the actual data student_data = ['Jack', 23, 'Physics', 'Chemistry'] # 1. Open a new CSV file with open('students.csv', 'w') as file: # 2. Create a CSV writer writer = csv.writer(file) # 3. Write data to the file writer.writerow(student_header) writer.writerow(student_data)
這會(huì)將 students.csv 文件創(chuàng)建到您當(dāng)前正在使用的文件夾中。新文件如下所示:
如何在 Python 中將多行寫入 CSV 文件
在 Python 中,您可以使用 CSV 編寫器的 writerows() 函數(shù)同時(shí)將多行寫入 CSV 文件。
例子。 假設(shè)您要將多行數(shù)據(jù)寫入 CSV 文件。 例如,您可能有一個(gè)學(xué)生列表,而不是只有其中一個(gè)。
要將多行數(shù)據(jù)寫入 CSV,請(qǐng)使用 writerows() 方法。
這是一個(gè)例子:
import csv student_header = ['name', 'age', 'major', 'minor'] student_data = [ ['Jack', 23, 'Physics', 'Chemistry'], ['Sophie', 22, 'Physics', 'Computer Science'], ['John', 24, 'Mathematics', 'Physics'], ['Jane', 30, 'Chemistry', 'Physics'] ] with open('students.csv', 'w') as file: writer = csv.writer(file) writer.writerow(student_header) # Use writerows() not writerow() writer.writerows(student_data)
這會(huì)生成一個(gè)新的 CSV 文件,如下所示:
如何在 Python 中將字典寫入 CSV 文件
要在 Python 中將字典寫入 CSV 文件,請(qǐng)按照以下三個(gè)步驟使用 DictWriter 對(duì)象:
1. 使用 csv 模塊的 DictWriter 對(duì)象并在其中指定字段名稱。
2. 使用 writeheader() 方法將標(biāo)頭創(chuàng)建到 CSV 文件中。
3. 使用 writerows() 方法將字典數(shù)據(jù)寫入文件。
例子:讓我們將學(xué)生數(shù)據(jù)字典寫入 CSV 文件。
import csv student_header = ['name', 'age', 'major', 'minor'] student_data = [ {'name': 'Jack', 'age': 23, 'major': 'Physics', 'minor': 'Chemistry'}, {'name': 'Sophie', 'age': 22, 'major': 'Physics', 'minor': 'Computer Science'}, {'name': 'John', 'age': 24, 'major': 'Mathematics', 'minor': 'Physics'}, {'name': 'Jane', 'age': 30, 'major': 'Chemistry', 'minor': 'Physics'} ] with open('students.csv', 'w') as file: # Create a CSV dictionary writer and add the student header as field names writer = csv.DictWriter(file, fieldnames=student_header) # Use writerows() not writerow() writer.writeheader() writer.writerows(student_data)
現(xiàn)在結(jié)果與前面示例中的 students.csv 文件相同:
結(jié)論
CSV 或逗號(hào)分隔值是一種常用的文件格式。 它由通常用逗號(hào)分隔的值組成。
要在 Python 中寫入 CSV,您需要通過(guò)以下步驟使用 csv 模塊:
1. 以寫入模式打開(kāi) CSV 文件。
2. 創(chuàng)建 CSV 編寫器對(duì)象。
3. 將數(shù)據(jù)寫入 CSV 文件。
4. 關(guān)閉 CSV 文件。
這是一個(gè)實(shí)際的例子。
import csv data = ["This", "is", "a", "Test"] with open('example.csv', 'w') as file: writer = csv.writer(file) writer.writerow(data)
編碼愉快!
總結(jié)
到此這篇關(guān)于Python讀寫csv文件的超詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Python讀寫csv文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python多線程同步Lock、RLock、Semaphore、Event實(shí)例
這篇文章主要介紹了Python多線程同步Lock、RLock、Semaphore、Event實(shí)例,Lock & RLock 用來(lái)確保多線程多共享資源的訪問(wèn),Semaphore用來(lái)確保一定資源多線程訪問(wèn)時(shí)的上限,Event是最簡(jiǎn)單的線程間通信的方式,需要的朋友可以參考下2014-11-11python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python完整實(shí)現(xiàn)俄羅斯方塊游戲全解
俄羅斯方塊是一個(gè)最初由阿列克謝帕吉特諾夫在蘇聯(lián)設(shè)計(jì)和編程的益智類視頻游戲。本文將利用python實(shí)現(xiàn)這一經(jīng)典的小游戲,需要的可以參考一下2022-03-03Python爬蟲(chóng)與防反爬蟲(chóng)策略從入門到實(shí)戰(zhàn)
本文將從基礎(chǔ)的爬蟲(chóng)原理和庫(kù)介紹開(kāi)始,逐步深入,通過(guò)實(shí)際示例代碼,帶領(lǐng)讀者學(xué)習(xí)Python爬蟲(chóng)的使用和技巧,掌握從簡(jiǎn)單到復(fù)雜的爬蟲(chóng)實(shí)現(xiàn)2024-01-01Opencv圖像處理:如何判斷圖片里某個(gè)顏色值占的比例
這篇文章主要介紹了Opencv圖像處理:如何判斷圖片里某個(gè)顏色值占的比例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python shapely.geometry.polygon任意兩個(gè)四邊形的IOU計(jì)算實(shí)例
這篇文章主要介紹了python shapely.geometry.polygon任意兩個(gè)四邊形的IOU計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python數(shù)據(jù)結(jié)構(gòu)之圖的存儲(chǔ)結(jié)構(gòu)詳解
本篇章主要介紹圖,包括圖的定義、相關(guān)術(shù)語(yǔ)、性質(zhì)及存儲(chǔ)結(jié)構(gòu),并用Python代碼實(shí)現(xiàn),需要的朋友可以參考下2021-06-06