如何在 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