欢迎访问宙启技术站
智能推送

使用Python中的csv模块来读写csv文件的函数

发布时间:2023-06-23 06:58:41

CSV 文件(也就是 Comma Separated Value,以逗号作为分隔符的文件)是一种常见的文件格式,经常用于数据的存储和转移。在 Python 中,我们可以使用 csv 模块来读写这类文件。

csv 模块提供了一种轻量级的方式来读写 csv 文件,它可以方便地处理带有不同分隔符、线头和换行符的 csv 文件。以下是使用 csv 模块读写 csv 文件的一些例子和方法:

1. 读取一个 csv 文件

通过 csv 模块的 reader 函数,我们可以逐行读取一个 csv 文件中的数据,然后将其转换为一个列表。下面是一个读取 csv 文件的示例:

import csv

with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

这个例子中,我们打开了一个名为 data.csv 的 csv 文件,并将其保存在一个 file 对象中。接着,我们使用 csv 模块的 reader 函数创建一个 reader 对象,然后逐行读取文件中的数据。对于每一行数据,我们使用 for 循环将其作为一个列表打印出来。

2. 写入一个 csv 文件

通过 csv 模块的 writer 函数,我们可以方便地将数据写入到一个 csv 文件中。下面是一个写入 csv 文件的示例:

import csv

with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Age', 'Gender'])
    writer.writerow(['Alice', 25, 'F'])
    writer.writerow(['Bob', 30, 'M'])

这个例子中,我们打开了一个名为 output.csv 的 csv 文件,并保存在一个 file 对象中。接着,我们使用 csv 模块的 writer 函数创建一个 writer 对象,然后使用 writerow 函数逐行写入数据。在 行中,我们写入了列标题;在接下来的两行中,我们写入了具体的数据。注意,我们要在打开文件时添加 newline='' 参数,以防止出现多余的空行。

3. 读取一个具有标题的 csv 文件

当我们读取一个具有标题的 csv 文件时,我们可以使用 csv 模块的 DictReader 函数来方便地将数据转换为一个字典。下面是一个读取具有标题的 csv 文件的示例:

import csv

with open('data.csv', 'r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row['Name'], row['Age'], row['Gender'])

这个例子中,我们打开了一个名为 data.csv 的 csv 文件,并将其保存在一个 file 对象中。接着,我们使用 csv 模块的 DictReader 函数创建一个 reader 对象,然后逐行读取文件中的数据。对于每一行数据,我们使用 for 循环将其作为一个字典打印出来。

4. 写入一个具有标题的 csv 文件

当我们写入一个具有标题的 csv 文件时,我们可以使用 csv 模块的 DictWriter 函数来方便地将数据写入到文件中。下面是一个写入具有标题的 csv 文件的示例:

import csv

with open('output.csv', 'w', newline='') as file:
    fieldnames = ['Name', 'Age', 'Gender']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'Name': 'Alice', 'Age': 25, 'Gender': 'F'})
    writer.writerow({'Name': 'Bob', 'Age': 30, 'Gender': 'M'})

这个例子中,我们打开了一个名为 output.csv 的 csv 文件,并将其保存在一个 file 对象中。接着,我们定义了一个 fieldnames 列表,其中包含了列标题;然后使用 csv 模块的 DictWriter 函数创建了一个 writer 对象,并将 fieldnames 参数传递给它。接着,我们使用 writeheader 函数写入列标题,然后使用 writerow 函数逐行写入数据。

csv 模块还提供了一些其他的函数和方法,例如 delimiter、quotechar、quoting 等参数,可以用来控制 csv 文件的分隔符和引用字符等,具体请参考 Python 的官方文档。