HOWTO · Python
如何在 Python 中把列表写入 CSV
可以使用 Python 列表值来编写 csv 文件。像 csv.writer()、writerow()、pandas 和 numpy 库这样的方法都是用于这个目的的。
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