如何在 Python 中把列表写入 CSV

Azaz Farooq 2023年1月30日
  1. 在 Python 中使用 csv.writer() 方法将列表写成 CSV
  2. 在 Python 中使用引号方法将列表写入 CSV 中
  3. 使用 Python 中的 pandas 方法将列表写入 CSV 中
  4. 在 Python 中使用 NumPy 方法把列表写成 CSV 文件
如何在 Python 中把列表写入 CSV

CSV 文件可以将数据以表格的形式存储。这些数据是一个简单的文本,每一行数据称为记录,每一行可以用逗号分隔。

本文将讨论用 Python 将列表写入 CSV 的不同方法。

在 Python 中使用 csv.writer() 方法将列表写成 CSV

我们先导入 csv 模块。

import csv

假设我们把下面的条目写入 CSV 文件。

RollNo, Name, Subject
1, ABC, Economics
2, TUV, Arts
3, XYZ, Python

现在,完整的示例代码如下。

import csv

with open("students.csv", "w", newline="") as student_file:
    writer = csv.writer(student_file)
    writer.writerow(["RollNo", "Name", "Subject"])
    writer.writerow([1, "ABC", "Economics"])
    writer.writerow([2, "TUV", "Arts"])
    writer.writerow([3, "XYZ", "Python"])

如果你运行上面的代码,students.csv 文件将在当前目录下按行创建,其中有代码中出现的条目。csv.writer() 函数将创建 writer() 对象,writer.writerow() 命令将条目逐行插入 CSV 文件。

在 Python 中使用引号方法将列表写入 CSV 中

在本方法中,我们将看到如何在 CSV 文件中写入带引号的值。完整的示例代码如下。

import csv

list = [["RN", "Name", "GRADES"], [1, "ABC", "A"], [2, "TUV", "B"], [3, "XYZ", "C"]]
with open("studentgrades.csv", "w", newline="") as file:
    writer = csv.writer(file, quoting=csv.QUOTE_ALL, delimiter=";")
    writer.writerows(list)

在当前目录下创建 studentgrades.csv 文件。csv.QUOTE_ALL() 函数在所有条目上使用双引号,并使用分隔符 ; 进行分隔。

输出:

RN;"Name";"GRADES"
1;"ABC";"A"
2;"TUV";"B"
3;"XYZ";"C"

使用 Python 中的 pandas 方法将列表写入 CSV 中

这个方法使用了 Pandas 库,它拥有一个完整的数据框架。如果你的电脑上没有安装这个库,你可以使用一个叫做 Google Colab 的在线工具。

完整的示例代码如下。

import pandas as pd

name = ["ABC", "TUV", "XYZ", "PQR"]
degree = ["BBA", "MBA", "BSC", "MSC"]
score = [98, 90, 88, 95]
dict = {"name": name, "degree": degree, "score": score}
df = pd.DataFrame(dict)
df.to_csv("test.csv")

输出:

	name	degree	score
0	ABC	    BBA	     98
1	TUV	    MBA	     90
2	XYZ	    BSC	     88
3	PQR	    MSC	     95

这个方法将 Python 列表作为数据框架写入 CSV 文件。

在 Python 中使用 NumPy 方法把列表写成 CSV 文件

这个方法使用 NumPy 库在 Python 中把一个列表保存到 CSV 文件中。完整的示例代码如下。

import numpy as np

list_rows = [
    ["ABC", "COE", "2", "9.0"],
    ["TUV", "COE", "2", "9.1"],
    ["XYZ", "IT", "2", "9.3"],
    ["PQR", "SE", "1", "9.5"],
]
np.savetxt("numpy_test.csv", list_rows, delimiter=",", fmt="% s")

NumPy 库的 savetxt() 函数将从 Python 列表中写入一个 CSV 文件。

输出:

ABC	 COE	2	9
TUV	 COE	2	9.1
XYZ	 IT	2	9.3
PQR	 SE	1	9.5

相关文章 - Python CSV

相关文章 - Python List