python写入数据到csv或xlsx文件的3种方法

  • Post category:Python

下面是Python写入数据到CSV或XLSX文件的三种方法的完整实例教程,过程中包含两条示例说明:

1. Python写入CSV文件

步骤1:导入CSV模块

要将数据写入CSV文件,我们需要先导入CSV模块。

import csv

步骤2:准备数据

在将数据写入CSV文件之前,首先需要准备数据。以下是使用Python列表准备数据的示例:

data = [
    ["Name", "Age", "Gender"],
    ["Tom", 25, "Male"],
    ["Amy", 20, "Female"],
    ["John", 30, "Male"]
]

这里我们创建一个包含标题和数据的二维列表。

步骤3:打开CSV文件并写入数据

接下来,我们需要在Python中打开CSV文件并将数据写入文件。以下是写入数据的示例代码:

with open("data.csv", "w", newline="", encoding="utf-8-sig") as file:
    writer = csv.writer(file)
    writer.writerows(data)

我们使用open()函数打开名为data.csv的文件,并将w作为模式参数传递,表示写模式。接着,我们使用csv.writer()方法创建一个写入器对象,然后使用writerows()方法将数据写入文件中。在使用open()函数时,我们还传递了newlineencoding参数。newline参数避免在写入CSV文件时出现空行,encoding参数指定文件的编码格式为UTF-8。

示例1:写入学生信息到CSV文件

以下是一个总结学生信息的示例代码:

import csv

students = [
    ["Name", "Age", "Class"],
    ["Tom", 18, "Class 1"],
    ["Amy", 19, "Class 2"],
    ["John", 18, "Class 1"]
]

with open("students.csv", "w", newline="", encoding="utf-8-sig") as file:
    writer = csv.writer(file)
    writer.writerows(students)

print("CSV文件已成功写入。")

这将创建一个名为students.csv的CSV文件,其中包含学生姓名、年龄和班级等信息。

2. Python写入XLSX文件

步骤1:安装openpyxl库

如果要将数据写入XLSX文件,我们需要使用第三方库openpyxl。可以通过以下命令安装:

pip install openpyxl

步骤2:导入openpyxl模块

导入openpyxl库中的Workbookload_workbook方法:

from openpyxl import Workbook, load_workbook

步骤3:准备数据

在将数据写入XLSX文件之前,首先需要准备数据。以下是使用Python列表准备数据的示例:

data = [
    ["Name", "Age", "Gender"],
    ["Tom", 25, "Male"],
    ["Amy", 20, "Female"],
    ["John", 30, "Male"]
]

这里我们创建一个包含标题和数据的二维列表。

步骤4:打开XLSX文件并写入数据

接下来,我们需要在Python中打开XLSX文件并将数据写入文件。以下是写入数据的示例代码:

workbook = Workbook()
sheet = workbook.active

for row in data:
    sheet.append(row)

workbook.save(filename="data.xlsx")

首先,我们使用Workbook()方法创建一个XLSX文件,然后使用active属性选中工作表。接着,我们使用append()方法将数据添加到工作表中。最后,使用save()方法保存文件并指定文件名。

示例2:写入成绩到XLSX文件

以下是将学生成绩写入XLSX文件的示例代码:

from openpyxl import Workbook

scores = {
    "Tom": [85, 90, 92],
    "Amy": [75, 80, 85],
    "John": [92, 88, 89]
}

workbook = Workbook()
sheet = workbook.active

sheet["A1"] = "Name"
sheet["B1"] = "Math"
sheet["C1"] = "English"
sheet["D1"] = "History"

row = 2
for name in scores:
    sheet.cell(row=row, column=1, value=name)
    sheet.cell(row=row, column=2, value=scores[name][0])
    sheet.cell(row=row, column=3, value=scores[name][1])
    sheet.cell(row=row, column=4, value=scores[name][2])
    row += 1

workbook.save(filename="scores.xlsx")

print("XLSX文件已成功写入。")

这将创建一个名为scores.xlsx的XLSX文件,其中包含学生姓名和数学、英语、历史三门课的成绩信息。