Maison > Article > développement back-end > Comment lire et traiter efficacement des fichiers CSV volumineux en Python ?
Lecture efficace de gros fichiers CSV
La lecture et le traitement de gros fichiers CSV en Python peuvent être difficiles en raison des limitations de mémoire. Ce problème devient encore plus important avec les fichiers contenant des millions de lignes et des centaines de colonnes.
Problèmes de mémoire et optimisation
Votre code actuel tente de lire et de stocker les données du Fichier CSV dans une liste. Cependant, cette approche est inefficace pour les fichiers volumineux car elle charge l'intégralité de l'ensemble de données en mémoire.
Pour résoudre ce problème de mémoire, traitez les données au fur et à mesure que vous les lisez. Utilisez une fonction génératrice qui génère une ligne à la fois, comme illustré ci-dessous :
import csv def getstuff(filename, criterion): with open(filename, "rb") as csvfile: datareader = csv.reader(csvfile) yield next(datareader) # yield the header row count = 0 for row in datareader: if row[3] == criterion: yield row count += 1 elif count: # stop when exceeding the adjacent rows of criteria return
Ce code mis à jour génère des lignes qui correspondent au critère spécifié, ligne par ligne. Il élimine le besoin de conserver l'intégralité de l'ensemble de données en mémoire.
Améliorations des performances
Au-delà de l'optimisation de la mémoire, il existe des techniques supplémentaires pour améliorer les performances :
Par en utilisant ces stratégies, vous pouvez améliorer considérablement l'efficacité de votre code Python pour gérer les gros fichiers CSV.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!