如何使用Python将数据导出到CSV文件中?

  • Post category:Python

要使用Python将数据导出到CSV文件中,可以使用Python的内置模块csv。以下是使用csv模块将数据导出到CSV文件的完整攻略:

写入CSV文件

要将数据写入CSV文件,需要使用.writer()方法创建一个写入器对象,该对象用于将数据写入CSV文件。以下是一个示例,该示例将一个名为data.csv的CSV文件中写入一些数据:

import csv

# 数据
data = [
    ['John', 'Doe', 25],
    ['Jane', 'Doe', 30],
    ['Bob', 'Smith', 35]
]

# 写入CSV文件
with open('data.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

在上面的示例中,我们使用csv.writer()方法创建一个写入器对象,并使用writerows()方法将数据写入CSV文件。mode='w'参数指定打开文件的模式为写入模式,newline=''参数指定行结束符为空,以避免在Windows系统上出现额外的空行。

读取CSV文件

要从CSV文件中读取数据,需要使用csv.reader()方法创建一个读取器对象,该对象用于从CSV文件中读取数据。以下是一个示例,该示例从一个名为data.csv的CSV文件中读取数据:

import csv

# 读取CSV文件
with open('data.csv', mode='r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

在上面的示例中,我们使用csv.reader()方法创建一个读取器对象,并使用for循环遍历读取器对象中的每一行数据。每一行数据是一个列表,其中包含CSV文件中的每个字段。

示例1

在这个示例中,我们将创建一个名为students.csv的CSV文件,并将一些学生的姓名、年龄和成绩写入该文件。然后,我们将从该文件中读取数据,并将其打印到控制台上。

import csv

# 写入CSV文件
data = [
    ['John', 25, 90],
    ['Jane', 30, 85],
    ['Bob', 35, 95]
]

with open('students.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Age', 'Grade'])
    writer.writerows(data)

# 读取CSV文件
with open('students.csv', mode='r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

在上面的示例中,我们使用csv.writer()方法创建一个写入器对象,并使用writerow()方法将标题行写入CSV文件。然后,我们使用writerows()方法数据写入CSV文件。最后,我们使用csv.reader()方法创建一个读取器对象,并使用for循环遍历读取器对象中的每一行数据,并将其打印到控制台上。

示例2

在这个示例中,我们将从一个名为employees.csv的CSV中读取数据,并将其中的员工姓名和薪水打印到控制台上。

import csv

# 读取CSV文件
with open('employees.csv', mode='r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row[0], row[1])

在上面的示例中,我们使用csv.reader()创建一个读取器对象,并使用for循环遍历读取器对象中的每一行数据。我们使用索引01获取每一行数据中的第一个和第二个字段,即员工姓名和薪水,并将它们打印到控制台上。

以上是使用Python将数据导出到CSV文件中的完整攻略,包括使用csv.writer()方法将数据写入CSV文件和使用csv.reader()方法从CSV文件中读取数据。示例1演示了如何将学生的姓名、年龄和成绩写入CSV文件,并从该文件中读取数据。示例2演示了如何从一个名为employees.csv的CSV文件中读取数据,并将其中的员工和薪水打印到控制台上。