使用 Python 创建数据并将其保存到 CSV 文件

CSV 文件或“逗号分隔值”文件与 Excel 工作表类似,并且具有“.csv”扩展名。它们用于以表格方式存储用逗号分隔的信息。这是大型数据系统存储数据记录的最常见方式。

csv 文件中也有行和列,就像表中一样。行称为数据记录,列称为字段。

由于 CSV 文件是简单的文本文件,因此更易于用于网站开发。CSV 文件还可以轻松导出到电子表格中,并在数据库管理系统中使用,没有太多麻烦。当我们需要组织大量数据时,它们也会派上用场。

在 Python 中创建 CSV 文件:基础知识

在Python中创建CSV文件主要有四个步骤。他们是:

  • 我们需要以 write(‘w’) 模式打开() 文件。
  • 接下来我们将创建一个 writer() 对象,它将帮助我们将数据写入 CSV 文件。
  • 在第三步中,我们将使用 writerows() 或 writerow() 函数将行写入文件中。
  • 最后保存并关闭我们的文件。

要在 Python 中创建数据并将其保存到 CSV 文件,请使用内置的“csv”模块有两个主要类“csv.writer”和“csv.DictWriter”,它们帮助创建数据并将数据写入 CSV 文件。对“csv.writer”类使用“writerow()”或“writerows()”函数,对“csv.DictWriter”类使用“writeheader()”函数。

类似:在 Python 中将 CSV 文件转换为数组。

在 Python 中写入 CSV 文件的方法

csv 文件的编写器主要有两种类型。它们都可用于将数据写入 csv 文件。这两个类是:

  • csv. writer class– 用于将数据写入 CSV 文件。它是一个将信息转换为分隔字符串的编写器对象。该函数的语法是csv. writer(name_or_path_of_file). 这是在 Python 中从列表编写 CSV 文件的最常见方法。该类提供两种类型的函数。
  • writerow()函数在 csv 文件打开时将新行或数据记录一一写入其中。
  • writerows()函数在使用时将新行全部写入 csv 文件内。
  • csv.dictWriter class顾名思义,另一类 CSV 编写器将 Python 字典写入 CSV 文件。语法为:csv.DictWriter(filename,fieldnames)其中,文件名是所需文件的名称,字段名称是每列的名称。这个类只有一个功能。
  • writeheader()函数仅使用列名称写入第一行。

方法 1:使用 csv.writer 类写入 CSV 文件

我们将 4 位学生 Varun、Rahul、Kabir 和 Suman 在英语、数学、科学和社会科学 4 个科目中的成绩写入一个名为 Student_results.csv 的 csv 文件。我们将使用函数打开文件with open(),这样就无需在程序结束时显式关闭文件。

# importing required module
import csv
 
# opening the file
with open("student_results.csv", "w", newline="") as f:
    # creating the writer
    writer = csv.writer(f)
    # using writerow to write individual record one by one
    writer.writerow(["Name", "English", "Math", "Science", "Social Science"])
    writer.writerow(["Varun", "91", "90", "74", "80"])
    writer.writerow(["Rahul", "89", "94", "81", "86"])
    writer.writerow(["Kabir", "80", "93", "88", "82"])
    writer.writerow(["Suman", "80", "75", "98", "85"])

上面的内容也可以使用 writerows() 函数在一个列表中一次性重写,如下所示:

# importing required module
import csv
 
# opening the file
with open("student_results.csv", "w", newline="") as f:
    # creating the writer
    writer = csv.writer(f)
    # using writerows, all rows at once
    Our_list = [
        ["Name", "English", "Math", "Science", "Social Science"],
        ["Varun", "91", "90", "74", "80"],
        ["Rahul", "89", "94", "81", "86"],
        ["Kabir", "80", "93", "88", "82"],
        ["Suman", "80", "75", "98", "85"],
    ]
    writer.writerows(Our_list)

当您打开并查看名为“students_results.csv”的 csv 文件时,上述两个代码块都会给出相同的结果

Name,English,Math,Science,Social Science
Varun,91,90,74,80
Rahul,89,94,81,86
Kabir,80,93,88,82
Suman,80,75,98,85
使用 Writer 类

瞧!您已使用 Python 成功写入 csv 文件。

另请阅读:如何使用 Python 合并 CSV 文件?

方法2:使用csv.DictWriter类写入CSV文件

在此示例中,我们将字段名称设置为字典的键,将各个值设置为每行中的数据。我们将使用上例中的相同数据,即 4 个姓名和 4 个科目获得的分数。我们将所有信息合并到一个字典中,并使用 writeheader() 函数写入该字典。我们来看看它的实现。

# importing required module
import csv
 
# creating the dictionary
Our_dict = [
    {
        "Name": "Varun",
        "English": "91",
        "Math": "90",
        "Science": "80",
        "Social Science": "93",
    },
    {
        "Name": "Rahul",
        "English": "94",
        "Math": "75",
        "Science": "88",
        "Social Science": "70",
    },
    {
        "Name": "Kabir",
        "English": "81",
        "Math": "99",
        "Science": "91",
        "Social Science": "89",
    },
    {
        "Name": "Suman",
        "English": "92",
        "Math": "97",
        "Science": "94",
        "Social Science": "71",
    },
]
 
# extracting fieldnames
columns = ["Name", "English", "Math", "Science", "Social Science"]
 
# opening the file
with open("student_results.csv", "w", newline="") as f:
    # using dictwriter
    writer = csv.DictWriter(f, fieldnames=columns)
    # using writeheader function
    writer.writeheader()

输出将与上面的部分相同。

Name,English,Math,Science,Social Science
Varun,91,90,80,93
Rahul,94,75,88,70
Kabir,81,99,91,89
Suman,92,97,94,71

结论:使用 Python 掌握 CSV 文件

使用 Python 中名为 csv 的内置模块将数据写入 csv 文件非常容易。CSV 的完整形式是逗号分隔值。它以表格的形式存储数据,使其更易于阅读和组织。当存在大量数据以及数据库管理系统时,它非常有用。我们已经了解了可用于从 python 写入 CSV 文件的各种方法和函数。感谢您的阅读!