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

如何使用Python读取CSV文件?

发布时间:2023-05-24 03:05:12

CSV即Comma-Separated Values,是一种用于将数据存储在纯文本文件中的简单格式。它通常用于将数据导出或导入到Excel、数据库和其他数据处理程序中。Python可以很容易地读取和处理CSV文件,本文将为您介绍如何使用Python读取CSV文件。

1. CSV文件的格式

CSV文件中的每行代表一个记录,每列代表记录的一个字段。列与列之间用逗号隔开,每行之间用回车或换行符分隔。例如以下的CSV文件:

Name, Age, Gender
Alice, 25, Female
Bob, 30, Male
Charlie, 28, Male

2. 读取CSV文件的方法

Python标准库中的csv模块提供了读取和写入CSV文件的功能。它提供了两种读取CSV文件的方法:基于行的读取和基于字典的读取。

- 基于行的读取方法

这种方法将CSV文件读入一个列表中,每行作为列表的一个元素,每个元素是由列数据组成的列表。示例代码:

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in reader:
        print(', '.join(row))

代码解释:

- 使用with open()打开CSV文件。newline=''参数表示不将\r

都视为行的结束符。

- csv.reader()函数将CSV文件读入一个reader对象中。delimiter=','表示列之间用逗号分隔。

- 迭代循环reader对象,输出每行数据。join()方法用于将列表中的每个元素用逗号连接起来。

输出结果:

Name, Age, Gender
Alice, 25, Female
Bob, 30, Male
Charlie, 28, Male

- 基于字典的读取方法

这种方法把CSV文件读入一个字典里,每行的数据通过列名作为键来访问。示例代码:

import csv

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

代码解释:

- 使用csv.DictReader()函数将CSV文件读入一个字典中。这里无需指定列名,它会使用 行的数据自动设置列名。

- 迭代循环reader对象,输出每行数据。每行数据都是一个字典,可以通过列名作为键来访问。

输出结果:

Alice 25 Female
Bob 30 Male
Charlie 28 Male

3. 根据需求处理CSV数据

读取CSV文件后,可以根据需要对数据进行处理。以下是一些处理CSV文件的常见方法:

- 跳过标题行

在读取CSV文件时,可以使用next()函数跳过标题行,这样就不会处理CSV文件中的标题行。示例代码:

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    # 跳过标题行
    next(reader)
    for row in reader:
        print(', '.join(row))

- 指定读取的列

在读取CSV文件时,可以使用usecols参数来指定需要读取的列。示例代码:

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, usecols=[0, 1])
    for row in reader:
        print(', '.join(row))

上面的代码只读取CSV文件中的前两列。

- 将CSV数据写入文件

通过Python中的csv模块,可以方便地将数据写入CSV文件。示例代码:

import csv

data = [
    ['Name', 'Age', 'Gender'],
    ['Alice', '25', 'Female'],
    ['Bob', '30', 'Male'],
    ['Charlie', '28', 'Male']
]

with open('output.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    for row in data:
        writer.writerow(row)

以上代码示例创建了一个二维列表,将其写入到名为output.csv的CSV文件中。

4. 总结

CSV是一种简单的存储数据的文件格式,Python标准库中的csv模块提供了读取和写入CSV文件的功能。基于行的读取方法将CSV文件读入一个列表中,每行作为列表的一个元素,每个元素是由列数据组成的列表。基于字典的读取方法把CSV文件读入一个字典里,每行的数据通过列名作为键来访问。在读取CSV文件后,可以根据需要对数据进行处理。以上就是如何使用Python读取CSV文件的方法。