Maison > développement back-end > tutoriel php > Comment traiter des fichiers de plusieurs gigaoctets ligne par ligne sans manquer de mémoire ?

Comment traiter des fichiers de plusieurs gigaoctets ligne par ligne sans manquer de mémoire ?

Linda Hamilton
Libérer: 2024-12-21 09:27:11
original
289 Les gens l'ont consulté

How to Process Gigabyte-Sized Files Line by Line Without Running Out of Memory?

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal