如何在 Python 中将列表写入 CSV

CSV(Comma Separated Values,逗号分隔值)是一种通用的文件格式,用于数据交换和存储。在 Python 中,可以使用标准库中的 csv 模块来读写 CSV 文件。本文将介绍如何将列表写入 CSV 文件的方法。

步骤一:导入 csv 模块

在 Python 中,csv 模块是用于读写 CSV 文件的标准库模块。在代码中导入 csv 模块,代码如下:

import csv

步骤二:创建 CSV 文件和写入数据

在使用 csv 模块将列表写入 CSV 文件之前,需要先创建 CSV 文件并打开文件流。可以使用 Python 内置的 open() 函数创建一个新的 CSV 文件,代码如下:

with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)

此代码创建了一个名为 ‘data.csv’ 的文件,并以写(w)模式打开该文件。参数 newline=” 表示使用 ‘\n’ 作为行分隔符。然后,通过 csv.writer() 函数创建一个写入器对象,并将它保存在变量 writer 中。接下来,就可以使用 writer 对象向 CSV 文件中写入数据了。

例如,将一个包含 4 个元素的列表 [1,2,3,4] 写入 CSV 文件的第一行,代码如下:

with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow([1, 2, 3, 4])

这段代码将列表 [1, 2, 3, 4] 写入了 ‘data.csv’ 文件的第一行。

步骤三:写入多行数据

在写入多行数据时,可以将每行数据表示为一个列表,并将这些列表追加到 CSV 文件中。例如,将三行数据写入 CSV 文件,代码如下:

with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow([1, 2, 3, 4])
    writer.writerow(['apple', 'banana', 'orange', 'grape'])
    writer.writerow([True, False, True, False])

这段代码将三行数据写入了 ‘data.csv’ 文件中。注意,每次写入一个列表时,需要使用 writerow() 方法,该方法将列表作为参数传递。

步骤四:写入字典数据

除了列表外,还可以将字典数据写入 CSV 文件。在这种情况下,每个字典表示为一个行,其键为 CSV 文件的列名,其值为相应的行值。例如,将一个包含三个字典的列表写入 CSV 文件,代码如下:

data = [
    {'name': 'Alice', 'age': 25, 'gender': 'F'},
    {'name': 'Bob', 'age': 30, 'gender': 'M'},
    {'name': 'Charlie', 'age': 35, 'gender': 'M'}
]

with open('data.csv', 'w', newline='') as file:
    writer = csv.DictWriter(file, fieldnames=['name', 'age', 'gender'])
    writer.writeheader()
    for row in data:
        writer.writerow(row)

这段代码将一个包含三个字典的列表写入了 ‘data.csv’ 文件中。注意,需要使用 csv.DictWriter() 函数来创建一个写入器对象,该函数的第二个参数是一个字符串列表,用于指定 CSV 文件的列名。然后,使用 writer.writeheader() 方法写入 CSV 文件的头部,即列名。最后,遍历字典列表并使用 writer.writerow() 方法将每个字典写入 CSV 文件中。

注意事项:

  1. 写入 CSV 文件时,需要小心每行数据的格式与数据类型。特别是在写入数字和布尔值时,需要确保数据类型正确。
  2. 在使用 csv.writer() 函数时,可以使用额外的参数来指定分隔符、行分隔符和引用符等格式。例如,可以使用 delimiter=’,’ 参数来指定逗号分隔符。
  3. 在写入字典数据时,需要确保每个字典中的键名与 CSV 文件的列名相同,否则会出现错误或数据错误。
  4. 在写入 CSV 文件时,最好使用 with 语句来确保文件流被正确关闭。
  5. 如果打开的 CSV 文件已经存在,则使用 ‘w’ 模式会覆盖该文件的内容。如果需要在现有的 CSV 文件中添加数据,应该使用 ‘a’ 模式打开文件流。

总结:

本文介绍了如何使用 Python 中的 csv 模块将列表或字典数据写入 CSV 文件。在使用 csv.writer() 或 csv.DictWriter() 函数时,需要小心数据格式和数据类型,并使用适当的参数来指定 CSV 文件的格式。同时,最好使用 with 语句来确保文件流被正确关闭。