如何在 Python 中讀取 CSV 到列表
Afia Ghazanfar
2023年10月10日
本文介紹瞭如何在 Python 中讀取 CSV 到列表。
假設我們有一個 CSV
檔案 Employees.csv
,裡面的內容如下。
Id | Name | Department | 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 中將字典轉換為列表
- 從 Python 列表中刪除某元素的所有出現
- 在 Python 中從列表中刪除重複項
- 如何在 Python 中獲取一個列表的平均值
- Python 列表方法 append 和 extend 之間有什麼區別
- 如何在 Python 中將列表轉換為字串