如何在 Python 中读取 CSV 到列表

Afia Ghazanfar 2023年1月30日 2020年10月27日
  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