Maison >développement back-end >tutoriel php >Comment traiter des fichiers de plusieurs gigaoctets ligne par ligne sans manquer de mémoire ?
Comment lire un fichier volumineux ligne par ligne sans surcharger la mémoire
La lecture de fichiers longs ligne par ligne peut être un défi, surtout lorsque la taille du fichier dépasse la mémoire de votre système capacité. Dans de tels scénarios, tenter de charger l'intégralité du fichier en mémoire à l'aide de méthodes standard entraîne souvent des erreurs de mémoire insuffisante.
Considérez l'extrait de code suivant :
with open('inputfile.txt', 'r') as f: for line in f: # Process the line
Lors de l'exécution de ce code sur un fichier volumineux, l'intégralité du fichier est chargée en mémoire, ce qui peut causer des problèmes si le fichier est dans la plage des gigaoctets.
Pour éviter ce problème, pensez à utiliser le Fonction fgets(), qui permet de lire le fichier ligne par ligne sans charger l'intégralité du fichier en mémoire :
with open('inputfile.txt', 'r') as f: while True: line = fgets(f) if not line: break # Process the line
Cette approche lit le fichier ligne par ligne, libérant de la mémoire une fois chaque ligne traitée, éviter les erreurs de mémoire insuffisante.
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!