Python CSV:读写 CSV 文件

CSV(逗号分隔值)格式是存储表格数据的一种常见且直接的方式。要表示 CSV 文件,它应该具有 .csv 文件扩展名。

现在,我们继续看一个 .csv 文件及其数据示例。

SN, Name,    City
1,  Michael, New Jersey
2,  Jack,    California

在 Python 中处理 CSV 文件

Python 提供了一个专门的 csv 模块来处理 csv 文件。该模块包含各种方法来执行不同的操作。

但是,我们首先需要使用以下方法导入模块

import csv

使用 Python 读取 CSV 文件

csv 模块提供了 csv.reader() 函数来读取 CSV 文件。

假设我们有一个名为 people.csvcsv 文件,其中包含以下条目。

Name,   Age, Profession
Jack,   23,  Doctor
Miller, 22,  Engineer

现在,让我们读取这个 csv 文件。

import csv

with open('people.csv', 'r') as file:
    reader = csv.reader(file)

    for row in reader:
        print(row)

输出

['Name', 'Age', 'Profession']
['Jack', '23', 'Doctor']
['Miller', '22', 'Engineer']

在这里,我们使用以下方法以读取模式打开了 people.csv 文件

with open(airtravel.csv', 'r') as file:

然后我们使用 csv.reader() 函数读取文件。要了解有关读取 csv 文件的更多信息,请参阅 Python 读取 CSV 文件

使用 csv.DictReader() 实现更易读的代码

csv.DictReader() 类可用于将 CSV 文件读取到字典中,提供了一种更用户友好且易于访问的方法。

假设我们要读取以下 people.csv 文件。

Name,   Age, Profession
Jack,   23,  Doctor
Miller, 22,  Engineer

现在让我们读取这个文件。

import csv
with open('people.csv', 'r') as file:
    csv_file = csv.DictReader(file)
    for row in csv_file:
        print(row)

输出

{'SN': '1', ' Name': ' Michael', ' City': ' New Jersey'}
{'SN': '2', ' Name': ' Jack', ' City': ' California'}

在此示例中,我们从 people.csv 文件中读取数据,并将每一行作为字典打印出来。

在这里,我们使用了 csv.DictReader(file),它将 CSV 文件的第一行视为列标题,并将后续每一行视为数据记录。


使用 Python 写入 CSV 文件

csv 模块提供了 csv.writer() 函数来写入 CSV 文件。

让我们看一个例子。

import csv
with open('protagonist.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(["SN", "Movie", "Protagonist"])
    writer.writerow([1, "Lord of the Rings", "Frodo Baggins"])
    writer.writerow([2, "Harry Potter", "Harry Potter"])

当我们运行上述程序时,将创建一个 protagonist.csv 文件,其中包含以下内容

SN,Movie,Protagonist
1,Lord of the Rings,Frodo Baggins
2,Harry Potter,Harry Potter

在此示例中,我们以写入模式创建了名为 protagonist.csv 的 CSV 文件。

然后我们使用 csv.writer() 函数写入文件。要了解有关写入 csv 文件的更多信息,请参阅 Python 写入 CSV 文件

这里,

  • writer.writerow(["SN", "Movie", "Protagonist"]) 将包含列名称的标题行写入 CSV 文件。
  • writer.writerow([1, "指环王", "弗罗多·巴金斯"]) 将第一行数据写入 CSV 文件。
  • writer.writerow([2, "哈利·波特", "哈利·波特"]) 将第二行数据写入 CSV 文件。
将字典写入 CSV 文件

我们可以使用 csv.DictWriter() 类将字典数据写入 CSV 文件,这对于更结构化的数据非常有用。例如,

import csv

with open('players.csv', 'w', newline='') as file:
    fieldnames = ['player_name', 'fide_rating']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'player_name': 'Magnus Carlsen', 'fide_rating': 2870})
    writer.writerow({'player_name': 'Fabiano Caruana', 'fide_rating': 2822})
    writer.writerow({'player_name': 'Ding Liren', 'fide_rating': 2801})

该程序创建了一个 players.csv 文件,其中包含以下条目

player_name,fide_rating
Magnus Carlsen,2870
Fabiano Caruana,2822
Ding Liren,2801

在此示例中,我们使用 csv.DictWriter(file, fieldnames=fieldnames) 将数据写入 players.csv 文件。

writer.writeheader() 函数将这些列标题写入文件的第一行。

每次调用 writerow() 都会向 CSV 文件添加一个新行,其中每个字典都表示一个记录,其 player_namefide_rating 作为与列对应的键。


使用 Python Pandas 处理 CSV 文件

Pandas 是 Python 中用于数据操作和分析的流行数据科学库。

如果我们处理大量数据块,最好使用 pandas 来处理 CSV 文件,以便于和高效。

注意:在我们使用 pandas 之前,我们需要安装并导入它。要了解更多信息,请访问 安装和导入 Pandas

读取 CSV 文件

要使用 pandas 读取 CSV 文件,我们可以使用 read_csv() 函数。

import pandas as pd
pd.read_csv("people.csv")

在这里,程序从当前目录读取 people.csv

写入 CSV 文件

要写入 CSV 文件,我们需要使用 DataFrame 的 to_csv() 函数。

import pandas as pd

# creating a data frame
df = pd.DataFrame([['Jack', 24], ['Rose', 22]], columns = ['Name', 'Age'])

# writing data frame to a CSV file
df.to_csv('person.csv')

在这里,我们使用 pd.DataFrame() 方法创建了一个 DataFrame。然后,调用此对象的 to_csv() 函数,以写入 person.csv


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战