如何在 Python 中把列表写入 CSV

Azaz Farooq 2023年1月30日 2020年11月7日
  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