如何在 Python 中將列表寫入 CSV

如何在 Python 中將列表寫入 CSV

如果您一直在研究 Python 列表並想知道如何將它們保存為簡潔的 CSV 文件,那麼您來對地方了。Python 中最常見的任務之一是將列表寫入逗號分隔文件,今天,我們將把您變成 CSV 文件專家!

要用 Python 將列表寫入 CSV,您可以使用一個名為 csv 的內置模塊,該模塊專為讀取和寫入 CSV 文件而設計。該模塊的 csv.writer 類提供將簡單和嵌套列表寫入 CSV 文件的功能。

獲得相同結果的其他方法包括安裝和使用外部 Pandas 或 NumPy 模塊。

本文將解釋這些概念,並通過您入門所需的所有代碼示例逐步引導您完成整個過程。

我們走吧!

目錄

什麼是 Python 中的列表?

如何在 Python 中將列表寫入 CSV

Python 中的列表是一種內置數據結構,用於將多個項目存儲在單個變量中。

Python 列表是:

  • 有序(從零開始)。

  • 可變的(可以修改)。

  • 能夠存儲重複值。

列表是通過在方括號 [] 之間包含值來定義的,項目由逗號分隔。列表中的項目可以是任何數據類型,例如數字、字符串,甚至其他列表。

以下是創建簡單列表的示例:

products = [“t-shirts”, “hoodies”, “jeans”]

Python 中的列表列表

列表的列表也稱為嵌套列表。這些是包含其他列表作為其元素的列表。

它們通常在 Python 中用於表示行和列中的結構化數據。它們通常用於需要將相關數據分組在一起的場景。

下面是創建表示產品、價格和銷售額的嵌套列表的示例。

product_sales = [[“t-shirts”, 9.99, 342], [“hoodies”, 24.99, 118], [“jeans”, 29.99, 612]

CSV 文件和 Python 中的 CSV 模塊

CSV 文件以簡單的文件格式表示表格數據。文件中的每一行對應於表中的一行。行(或行)中的每個值都用逗號分隔——這就是為什麼這種格式被稱為“逗號分隔值”的原因。

CSV 格式的產品、價格和銷售額文件可能如下所示:

  • T 卹,9.99,342

  • 連帽衫, 24.99, 118

  • 牛仔褲,29.99,612

如何在 Python 中將列表寫入 CSV

csv模塊是一個內置的 Python 模塊,它提供了讀取和寫入 CSV 格式數據的工具。由於其簡單性和效率,它特別有用。

通過導入csv模塊,您可以訪問csv.writer()類,它允許您創建一個 writer 對象,該對象可以將分隔字符串寫入文件對象。

好了,現在我們已經了解了基礎知識,讓我們在下一節中看看如何使用 Python 將簡單列表寫入 CSV。

如何在 Python 中將簡單列表寫入 CSV

要學習的第一種技術是針對如下所示的簡單(非嵌套)列表文件:

  • T卹

  • 衛衣

  • 牛仔褲

如何在 Python 中將列表寫入 CSV

將列表寫入 CSV 文件的主要步驟是:

  1. 導入csv模塊。

  2. 創建一個 Python 列表。

  3. 以寫入模式打開 CSV 文件。

  4. 使用csv writer對象的writerow()函數。

  5. 保存並關閉 CSV 文件。

writerow ()函數將寫入多行,即,將所有數據寫入文件。這是帶有詳細註釋的代碼。

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a Python list
my_list = ["t-shirts", "hoodies", "jeans"]

# Step 3: Opening a CSV file in write mode

with open('products.csv', 'w', newline='') as file:
    # Step 4: Using csv.writer to write the list to the CSV file
    writer = csv.writer(file)
    writer.writerow(my_list) # Use writerow for single list

# Step 5: The file is automatically closed when exiting the 'with' block

使用上下文管理器

如果您不熟悉處理文件的“with”方法,這是一種使用管理文件資源的上下文管理器的技術。

例如,當你用它寫 CSV 文件時,with 語句結束時文件會自動關閉。

如何將列表列表寫入 CSV

對於列表列表,每個內部列表應該是文件中的一個 CSV 行。CSV 數據如下所示:

如何在 Python 中將列表寫入 CSV

除了使用writerows()函數而不是writerow()之外,主要步驟與上一節類似。

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a Python list of lists
my_list = [["t-shirts", 9.99, 342], ["hoodies", 24.99, 118], ["jeans", 29.99, 612]]

# Step 3: Opening a CSV file in write mode
with open('product_sales.csv', 'w', newline='') as file:
    # Step 4: Using csv.writer to write the list to the CSV file
    writer = csv.writer(file)
    writer.writerows(my_list) # Use writerows for nested list

# Step 5: The file is automatically closed when exiting the 'with' bloc

在第二個示例中,每個內部列表都在文件中寫為單獨的一行。

請注意,csv模塊可讓您避免枚舉循環遍歷數據結構並逐行寫入。

接下來,我們將了解如何將數據附加到現有 CSV 文件。

如何將數據附加到現有 CSV 文件

如何在 Python 中將列表寫入 CSV

要將數據附加到現有 CSV 文件,請執行以下步驟:

  1. 導入csv模塊。

  2. 使用 with open()上下文管理器以追加模式 ('a') 打開 CSV 文件。

  3. 創建一個包含要追加的數據的新列表。

  4. 通過傳遞打開的文件創建一個csv.writer()對象。

  5. 使用csv.writer()對象將新列表寫入 CSV 文件。

這是一個向現有文件添加嵌套列表(一行)的示例:

import csv

new_row = [["leggings", 22.99, 483]]

with open('product_sales.csv', 'a', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(new_row)

確保在打開文件時包含newline=”以確保 CSV 文件在不同平台上的格式正確。

在下一節中,我們將介紹如何使用DictWriter類寫入 CSV 文件。

如何使用 DictWriter 寫入 CSV 文件

如何在 Python 中將列表寫入 CSV

到目前為止,我們已經學習瞭如何將列表寫入 CSV 文件。但是,Python 具有其他數據結構,例如也可以寫入 CSV 文件的字典。

DictWriter ()類也是csv模塊的一部分。它類似於writer()類,但它處理字典數據。

這是一個例子:

import csv

product_sales_dict = [
    {"product": "t-shirts", "price": 9.99, "sales": 342},
    {"product": "hoodies", "price": 24.99, "sales": 118},
    {"product": "jeans", "price": 29.99, "sales": 612}
]

fieldnames = ["product", "price", "sales"]

with open("dictionary.csv", "w", newline="") as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerows(product_sales_dict)

Python 中的高級 CSV 技術

使用csv模塊並不是將 Python 列表導出為 CSV 文件的唯一方法。

為這項任務提供功能的兩個流行庫是PandasNumPy

1. 如何用 Pandas 導出數據

如何在 Python 中將列表寫入 CSV

Pandas 是一種廣泛用於數據操作和分析的 Python 庫。

要將 Python 列表保存為 CSV 文件,您可以從列表創建一個 pandas DataFrame,然後使用to_csv()方法,如下所示:

import pandas as pd
# Example list of lists
data = [['ABC', 1.2, 30], ['XYZ', 0.8, 20], ['LMN', 2.3, 50]]
# Create a DataFrame from the list
data_frame = pd.DataFrame(data, columns=['Name', 'Value', 'Quantity'])
# Save DataFrame to CSV file
data_frame.to_csv('output.csv', index=False, encoding='utf-8')

如果您的數據包含非 ASCII 字符,您可能需要將編碼參數設置為適當的值,例如“utf-8”。

2. 如何使用 NumPy 將列表保存為 CSV

另一個值得考慮的庫是NumPy,它支持使用數組和矩陣。

NumPy 提供了np.savetxt()函數作為將數據保存到 CSV 文件的便捷方法。

下面的示例展示瞭如何使用 NumPy 將列表保存到 CSV 文件:

import numpy as np
# Example list of lists
data = [['ABC', 1.2, 30], ['XYZ', 0.8, 20], ['LMN', 2.3, 50]]
# Save the list to a CSV file
np.savetxt('output.csv', data, delimiter=',', fmt='%s', header='Name,Value,Quantity', comments='')

以下是savetxt()參數的細分:

  • delimiter:指定字段分隔符

  • fmt參數:表示保存數據的格式

  • %s:字符串值的佔位符

  • header:列標題列表

  • comments:控制輸出文件中開始註釋的字符。

如何在寫入文件之前清理數據

在將數據寫入文本文件之前清理數據是個好主意。該視頻將為您提供所需的技術:

最後的想法

用 Python 將列表寫入 CSV 文件是存儲和共享數據的一種簡單有效的方法。您已經學習瞭如何使用 Python 的內置csv模塊來執行此任務。

您現在已經熟悉創建 Python 列表、導入csv模塊、打開 CSV 文件以及使用csv.writer將列表寫入 CSV 文件。

您還了解了將列表列表寫入 CSV 文件的更複雜場景,該文件允許您存儲表格數據。

不要忘記,就像編程中的所有事情一樣,熟能生巧。因此,利用這些新知識,嘗試一下,看看它如何處理不同的數據集和項目需求。

這只是 Python 的冰山一角。在廣闊的 Python 世界中還有很多東西需要探索,所以不要止步於此。但就今天而言,請拍拍自己的背。您已經成功馴服了列表到 CSV 轉換的野獸!


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的