如何在 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 中将列表转换为字符串