如何在 Python 中讀取 CSV 到列表

Afia Ghazanfar 2023年10月10日
  1. 在 Python 中使用 csv.reader 讀取 CSV 到一個列表中
  2. 在 Python 中使用 csv.reader 和其他定界符將 CSV 讀入一個列表
如何在 Python 中讀取 CSV 到列表

本文介紹瞭如何在 Python 中讀取 CSV 到列表。

假設我們有一個 CSV 檔案 Employees.csv,裡面的內容如下。

Id Name Department email Salary
1 Sam Human Resource sam@gmail.com 65K
2 John Management john@gmail.com 58K
3 Tony IT tony@gmail.com 70K
4 Mike Accounts mike@gmail.com 35K

如果你用某個文字編輯器開啟這個檔案,它的內容應該是這樣的。

Id,Name,Department,email,Salary
1,Sam,Human Resource,sam@gmail.com,65K
2,John,Management,john@gmail.com,58K
3,Tonny,IT,tonny@gmail.com,70K
4,Mike,Accounts,mike@gmail.com,35K

現在我們將把這個 CSV 檔案的上述資料匯入到 Python 的列表中。

在 Python 中使用 csv.reader 讀取 CSV 到一個列表中

Python 內建了一個名為 CSV 的模組,它有一個讀取器類來讀取 CSV 檔案的內容。在 Python 中讀取 CSV 到列表的示例程式碼如下。

from csv import reader

with open("Employees.csv", "r") as csv_file:
    csv_reader = reader(csv_file)
    # Passing the cav_reader object to list() to get a list of lists
    list_of_rows = list(csv_reader)
    print(list_of_rows)

csv_reader = reader(csv_file) 將檔案 ojbect csv_file 傳遞給 csv.reader() 函式,得到 reader 物件。它返回一個迭代器,用來遍歷 CSV 檔案的所有行。

list_of_rows = list(csv_reader)csv.reader 物件轉換為一個列表,其中列表中的每個元素表示 CSV 的一行,列表元素中的每一項代表一行中的一個單元格或一列。

輸出:

[['Id', 'Name', 'Company', 'email', 'Salary'], 
['1', 'Sam', 'Human Resource', 'sam@gmail.com', '65K'], 
['2', 'John', 'Management', 'john@gmail.com', '58K'], 
['3', 'Tonny', 'IT', 'tonny@gmail.com', '70K'], 
['4', 'Mike', 'Accounts', 'mike@gmail.com', '35K']]

在 Python 中使用 csv.reader 和其他定界符將 CSV 讀入一個列表

csv.reader 函式還提供了一個讀取文字檔案的選項,其中的值用其他字元而不是逗號分隔。例如,定界符可以是製表符或空格。要讀取這樣的檔案,我們需要傳遞一個額外的引數 delimiter 給 reader 函式。請看下面的例子。

如果我們有一個檔案 Employees_TSV.csv,其內容與 Employees.csv 中的內容相同,但用 tab 而不是逗號分隔。

from csv import reader

with open("Employees_TSV.csv", "r") as csv_file:
    csv_reader = reader(csv_file, delimiter="\t")
    list_of_rows = list(csv_reader)
    print(list_of_rows)

我們在上面的程式碼中從一個用 tab 分隔的值檔案中讀取資料。delimiter = '\t'指定 CSV 檔案中的定界符是製表符。

這段程式碼的輸出和上面的一樣。

相關文章 - Python List

相關文章 - Python CSV