python 对CSV文件进行操作

Python如何对CSV文件进行操作?

Comma-Separated Value(CSV)是一种将数据存储为文本文件的常见格式,它是一种用逗号分隔数据的格式,CSV文件可以在许多计算机程序和数据处理系统之间轻松传递和读取。在Python中,我们可以使用内置的csv库来轻松读取,写入和操作CSV文件。

1. 使用csv库读取CSV文件

通过csv库,我们可以轻松读取CSV文件中的数据,例如:

import csv

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

reader = csv.reader(file)

for row in reader:

print(row)

此模块提供的csv.reader方法可用于读取CSV文件中的数据。通过打开文件夹并使用csv.reader函数,我们可以轻松地按行读取CSV文件,然后使用Python进行操作。

2. 使用csv库将数据写入CSV文件

我们可以使用csv.writer方法将数据写入CSV文件,例如:

import csv

data = [['name', 'age', 'sex'],

['Lily', 18, 'female'],

['Mike', 21, 'male'],

['Tom', 22, 'male']]

with open('data.csv', 'w', newline='') as file:

writer = csv.writer(file)

for row in data:

writer.writerow(row)

以上代码将嵌套的数组存储到CSV文件中,每个数组都代表CSV文件的一行。该文件将被命名为data.csv并写入数据。

3. 使用DictReader和DictWriter方法

将CSV文件读取为Python中的字典,我们可以使用csv.DictReader方法,例如:

import csv

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

reader = csv.DictReader(file)

for row in reader:

print(row['name'], row['age'], row['sex'])

DictReader方法允许我们按行读取CSV文件并返回一个字典,其中键是CSV文件中的列标题,而值是它们对应的值。

我们也可以使用csv.DictWriter方法将数据按行写入CSV文件,例如:

import csv

data = [{'name': 'Lily', 'age': 18, 'sex': 'female'},

{'name': 'Mike', 'age': 21, 'sex': 'male'},

{'name': 'Tom', 'age': 22, 'sex': 'male'}]

with open('data.csv', 'w', newline='') as file:

fieldnames = ['name', 'age', 'sex']

writer = csv.DictWriter(file, fieldnames=fieldnames)

writer.writeheader()

for row in data:

writer.writerow(row)

该文件将被命名为data.csv并写入数据。

4. 处理CSV文件中的数据

我们可以使用Python对CSV文件中的数据进行过滤,排序和操作。

例如,下面是一个示例代码,将按照CSV文件中某一列的值对文件进行排序:

import csv

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

reader = csv.reader(file)

sorted_data = sorted(reader, key=lambda row: float(row[1]))

with open('sorted_data.csv', 'w', newline='') as file:

writer = csv.writer(file)

for row in sorted_data:

writer.writerow(row)

以上代码将按照CSV文件中的第二列(年龄)将文件排序,并将结果写入一个名为sorted_data.csv的新文件中。

另一个示例代码是将CSV文件中的数据集过滤并将结果写入新文件。例如,我们可以过滤出年龄低于20岁的学生:

import csv

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

reader = csv.reader(file)

filtered_data = filter(lambda row: int(row[1]) < 20, reader)

with open('filtered_data.csv', 'w', newline='') as file:

writer = csv.writer(file)

for row in filtered_data:

writer.writerow(row)

print('Filtered data have been written to filtered_data.csv')

在以上代码中,我们使用filter方法创建一个新的数据集。该方法使用一个函数,并从原始数据集中筛选出满足条件的行。在本例中,Python将找到CSV文件中所有年龄低于20岁的行,并将它们写入名为filtered_data.csv的新文件中。

结论

在本文中,我们介绍了Python如何使用csv库来读取,写入和操作CSV文件。我们学习了如何读取CSV文件中的数据,如何将数据写入CSV文件,如何使用DictReader和DictWriter方法以及如何在Python中操作CSV文件中的数据。CSV文件格式的广泛使用使得Python的csv库成为数据操作的一个重要工具,可帮助我们更轻松地处理数据和创建数据集。

后端开发标签