首頁 >後端開發 >Python教學 >使用Python使用CSV文件,並示例

使用Python使用CSV文件,並示例

Joseph Gordon-Levitt
Joseph Gordon-Levitt原創
2025-02-15 08:52:11415瀏覽

使用Python使用CSV文件,並示例

鑰匙要點

    Python的內置CSV模塊提供了以CSV格式閱讀,寫作和處理數據的功能和類。 CSV.Reader()函數可用於讀取CSV文件,而CSV.WRITER()允許將數據寫入CSV文件。
  • 。 CSV文件可以使用Python的csv.dictreader類轉換為JSON格式,該類別將CSV文件轉換為Python詞典。然後可以使用json.dump()函數將字典轉換為JSON文件。
  • > 可以通過首先使用JSON.LOAD()函數將JSON文件轉換為Python字典來將JSON文件轉換為CSV格式。然後可以使用CSV.DICTWRITER類方法將字典轉換為CSV文件。
  • CSV文件通常用於電子表格和數據庫中的數據導入和導出。 Python的CSV模塊簡化了使用CSV文件,並將其轉換為其他格式,例如JSON。
  • >在本文中,我們將學習如何使用Python從CSV文件中讀取和寫入數據,以及如何將CSV文件轉換為JSON格式,反之亦然。我們將探索如何使用CSV模塊,並查看有助於了解其工作原理的示例。
  • a csv(逗號分隔值)文件是一種文本文件格式,允許數據保存在表格結構中。這是一種流行的格式,用於從數據庫和電子表格導出和導入數據。
>顧名思義,CSV文件中的每個數據都由逗號(,)分開。有時,“ CSV”一詞可用於描述其他類型的分離器,例如結腸(:),semicolons(;)和tabs(t)。出於本文的目的,我們將處理使用逗號作為定界符(稱為RFC 4180)的CSV文件。

打開時,csv文件的內容如下:

>

>如上所述,逗號定界符,、,用來將文件中的每個特定數據分開。

>

>第一行數據可以選擇用作標題,並識別其下面的每一列數據。 CSV文件通常用.CSV文件擴展名保存。

Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
> CSV模塊

>可以將電子表格和數據庫(如MS SQL)導入並導出為CSV文件,因此重要的是要知道如何以編程方式處理CSV格式的數據。大多數編程語言(如Python)支持CSV中的處理文件,並將其轉換為JSON等其他格式。

Python提供了用於讀取,編寫和執行其他形式的文件處理的模塊,以CSV格式讀取和執行其他形式的文件。內置庫提供的功能和類,使使用CSV文件無縫。

如何使用Python讀取CSV文件

>> csv 模塊具有用於讀取CSV文件的csv.reader()函數。它與對象(包括文件對象)一起使用,例如使用Python的In-In-op-Open()函數生成的對象。

>從呼叫打開()中給定的文件對象,csv.reader()將返回讀取器對象。讀取器對象可以用來迭代CSV數據的每一行,其中行返回作為字符串列表。

讓我們以一個例子:

Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
這是上述代碼的輸出:

>在第一個代碼段中,打開了員工。 csv文件,然後csv.reader()函數解析並返回讀取器對象。一個簡單的循環用於迭代讀取器對象,該對像從employ.csv文件中返回每行數據列表,從頂部開始。
<span>import csv
</span>
<span>with open('employees.csv', newline='') as file_obj:
</span>    reader_obj <span>= csv.reader(file_obj)
</span>    <span>for row in reader_obj:
</span>        <span>print(row)
</span>

如何使用Python

寫入CSV文件

>除了從CSV文件中讀取數據外,我們還可以在Python中將數據寫入這些文件。 csv.writer()函數使我們能夠將數據寫入CSV格式。在寫入模式下打開文件後,csv.writer()函數返回一個作者對象,該對象將所提供的數據轉換為提供的文件對像上的劃界字符串。作者對象具有編寫一行的作者()方法(每次逗號或逗號分隔值的數量),而Writerows()方法一次用於多行。 writerow()和writerows()方法是將數據編寫到CSV文件的兩個選項。

>

>上面的代碼段中使用的所有列表對像都可以分組為2D列表,並將其作為參數傳遞給Writerows()作者對象的writer()方法以實現相同的結果。

執行使用語句後,在包含這些逗號分隔的當前工作目錄中創建了一個CSV文件(products.csv)。

這是一個示例:

這是上述代碼的輸出:

如何使用python
<span>['Employee Id', 'First Name', 'Gender', 'Start Date', 'Last Login Time', 'Salary', 'Bonus %', 'Senior Management', 'Team']
</span><span>['1', 'Douglas', 'Male', '8/6/1993', '12:42 PM', '', '6.945', 'TRUE', 'Marketing']
</span><span>['2', 'Thomas', 'Male', '3/31/1996', '6:53 AM', '61933', '4.17', '', '']
</span><span>['3', 'Maria', 'Female', '4/23/1993', '11:17 AM', '', '11.858', 'FALSE', 'Finance']
</span><span>['4', 'Jerry', 'Male', '3/4/2005', '1:00 PM', '138705', '9.34', '', 'Finance']
</span><span>['5', 'Larry', 'Male', '1/24/1998', '4:47 PM', '101004', '1.389', 'TRUE', 'Client Services']
</span><span>...
</span>
將CSV轉換為JSON 在執行文件I/O操作時,我們可能需要將CSV文件轉換為JSON格式 - 這是在客戶端和服務器之間接收和傳輸數據的流行。

csv

模塊提供了csv.dictreader類,以幫助我們實現這一目標。
<span>import csv
</span>
<span>with open('products.csv', 'w', newline='') as file_obj:
</span>    writer_obj <span>= csv.writer(file_obj)
</span>    writer_obj<span>.writerow(['Product Name', 'Price', 'Quantity', 'SKU Number' ])
</span>    writer_obj<span>.writerow(['Rice', 80, 35, 'RI59023'])
</span>    writer_obj<span>.writerow(['Curry', 2, 200, 'CY13890'])
</span>    writer_obj<span>.writerow(['Milk', 9.5, 315, 'MK10204'])
</span>

> csv.dictreader類方法有助於在應用

json

模塊的json.dump()函數之前將給定的CSV文件轉換為Python字典,以將結果Python字典轉換為JSON文件。 csv.dictreader()類採用可選的字段名稱參數。省略字段名稱的地方,第一行的值將映射到其餘數據為字段名稱。 讓我們來看看一個示例:

這是上述代碼的輸出:

>要將CSV文件轉換為JSON等效,我們應用了以下步驟:>
  • >在讀取模式下打開員工。
  • >使用csv.dictreader類返回的文件對象創建了Python字典
  • >在寫入模式下打開一個JSON文件,例如員工。
  • >使用
  • json
  • 模塊的dump()函數將python字典(my_dict)轉換為json文件>
  • 如何使用python
將JSON轉換為CSV 在本節中,我們將研究如何將數據從JSON文件轉換為CSV格式。為了實現這一目標,我們將同時使用內置的

csv

jsonpython模塊。 json模塊的json.load()函數將有助於將json文件轉換為python詞典,而csvcsv 模塊的csv.dictwiter類方法將有助於將python字典轉換為csv file。 這是一個示例:

>要將JSON文件轉換為CSV等效,我們應用了以下步驟:>
Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team
1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing
2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,,
3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance
4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance

在讀取模式下打開員工。

>使用JSON.LOAD()函數創建Python字典py_dict
  • >在寫入模式下打開了CSV文件files_records.csv(如果沒有這樣的文件,將創建一個文件)
  • >使用CSV.DICTWRITER類創建一個帶有必要參數的作者對象>使用作者對象方法將詞典映射到適當的行數
  • >
  • 結論
  • > CSV文件非常受歡迎,並且經常用於導出和導入電子表格和數據庫。使用數據的人經常使用此文件格式。但是,在使用Python進行編程時,可能需要快速使用CSV文件,因此學習如何使用CSV執行文件I/O操作很重要。
python's

csv

模塊非常方便地使用CSV文件,因為它為這類任務提供了必要的功能和類。 >

>也必須注意,我們可能需要將文件從一種格式轉換為另一種格式(CSV至JSON),如上所述。

經常詢問有關Python CSV文件的問題(常見問題解答)

>如何處理python中的大型CSV文件?但是,Python的內置CSV模塊提供了一種在較小的塊中讀取和編寫CSV文件的方法,從而使使用大型文件可以使用。您可以在循環中使用讀取器對像一次讀取特定數量的行。這樣,您可以在較小,更易於管理的塊中處理一個大文件。

>如何在Python中寫入CSV文件?

>寫入python中的CSV文件,與Python直接使用CSV模塊。您可以使用作者對象及其作者方法來編寫單行,也可以一次寫入多行。請記住在寫入之前以寫入模式打開文件。

>

>如何在Python中使用不同的定係數來處理CSV文件?讀者和作者對象採用定界符參數,您可以將其設置為CSV文件用作定界器的任何字符。

如何使用Python中的標頭(

)處理CSV文件?您的CSV文件包含一個標題行,您可以使用CSV模塊中的Dictreader對象讀取文件。該對象將每一行視為詞典,其中鍵是標題行中的列名,並且值是每個行中的數據。

>

>如何使用Python中的引用字段來處理CSV文件? >

>如何處理Python中的特殊字符的CSV文件?

>

>如果您的CSV文件包含特殊字符,則可以通過以二進制模式打開文件並使用Unicodecsv模塊而不是內置CSV模塊來處理它們。該模塊就像CSV模塊一樣工作,但它支持Unicode字符。

如何使用PANDAS處理CSV文件中的CSV文件,而Python中缺少值的CSV文件? Python的圖書館。您可以將CSV文件讀取到dataFrame中,然後使用fillna方法填充缺少值或計算值的值。

>如何將CSV文件轉換為Python中的其他格式?

如何通過Python中的特定列對CSV文件進行分類? >

>您可以使用Python中的Pandas庫通過特定列對CSV文件進行排序。在將CSV文件讀取到數據框中後,您可以使用sort_values方法按一個或多個列對數據框進行排序。

如何根據python的條件過濾CSV文件中的行?

>您可以使用Python中的PANDAS庫中的條件過濾CSV文件中的行。將CSV文件讀取到數據框中後,您可以使用布爾索引根據條件過濾數據框。

以上是使用Python使用CSV文件,並示例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn