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

Python中CSV文件的读写操作函数:如何处理大量数据

发布时间:2023-07-26 23:01:12

在Python中,我们可以使用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)

可以遍历reader迭代器来逐行读取数据。每一行都是一个列表,列表的每个元素对应CSV文件的一列。

2. 写入CSV文件:

使用csv模块的writer函数可以写入CSV文件。该函数返回一个写入对象,可以进行写入操作。

import csv

data = [
    ['Name', 'Age', 'City'],
    ['John', 30, 'New York'],
    ['Alice', 25, 'London'],
    ['Bob', 35, 'Paris']
]

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

可以使用writerows函数以行为单位写入数据。每一行都是一个列表。

3. 处理大量数据:

处理大量数据时,内存可能成为一个瓶颈。为了解决这个问题,可以使用csv模块的DictReader和DictWriter类。

import csv

# 读取CSV文件
with open('data.csv', 'r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row['Name'], row['Age'], row['City'])

# 写入CSV文件
data = [
    {'Name': 'John', 'Age': 30, 'City': 'New York'},
    {'Name': 'Alice', 'Age': 25, 'City': 'London'},
    {'Name': 'Bob', 'Age': 35, 'City': 'Paris'}
]

with open('data.csv', 'w', newline='') as file:
    fieldnames = ['Name', 'Age', 'City']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

DictReader类读取CSV文件时,每一行都被解析成一个字典,字典的键是CSV文件的列标题。DictWriter类写入CSV文件时,每个字典代表一行数据。

使用这些方法,我们可以高效地进行CSV文件的读写操作,处理大量数据时也不会占用太多内存。