python读取大型csv文件,降低内存占用,提高程序处理速度
要在Python中读取巨大的CSV文件而不占用大量内存,可以使用csv
模块的csv.reader
对象,逐行读取文件内容。如果需要处理大型CSV文件并提高程序速度,可以使用multiprocessing
或concurrent.futures
库进行并行处理。
以下是一个示例代码,演示如何使用csv.reader
逐行读取CSV文件,并使用concurrent.futures
库进行并行处理:
import csv
import concurrent.futures
# 定义处理CSV每一行的函数
def process_row(row):
# 这里可以放置你的处理逻辑
print(row) # 示例中,仅打印行内容
# 定义读取CSV文件的函数
def read_and_process_csv(file_path, num_processes):
with open(file_path, 'r', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
# 跳过标题行
next(reader)
# 使用concurrent.futures创建进程池
with concurrent.futures.ProcessPoolExecutor(max_workers=num_processes) as executor:
executor.map(process_row, reader)
# 使用示例
file_path = 'huge_file.csv' # 替换为你的CSV文件路径
num_processes = 4 # 根据可用CPU核心数量进行调整
read_and_process_csv(file_path, num_processes)
请根据实际情况调整process_row
函数中的处理逻辑,以及根据可用资源调整进程池中的进程数量。这样可以有效降低内存占用,并且通过并行处理提高处理速度。
评论已关闭