Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich große Dateien in Python effizient verarbeiten, ohne sie vollständig in den Speicher zu laden?

Wie kann ich große Dateien in Python effizient verarbeiten, ohne sie vollständig in den Speicher zu laden?

Susan Sarandon
Freigeben: 2024-12-16 19:33:14
Original
544 Leute haben es durchsucht

How Can I Efficiently Process Large Files in Python Without Loading Them Entirely into Memory?

Lazy-Methode zum Lesen großer Dateien in Python: Stückweise Verarbeitung

Das Lesen großer Dateien in Python kann eine Herausforderung sein, insbesondere wenn sie die Kapazität Ihres Computers überschreiten verfügbaren Speicher. Um dieses Problem zu mildern, bieten Lazy-Methoden eine Lösung, indem sie die Datei Stück für Stück lesen, jeden Teil verarbeiten und die Ergebnisse separat speichern.

Methode 1: Verwendung eines ertragsbasierten Generators

Eine Möglichkeit, eine Lazy-Methode zu erstellen, ist eine Generatorfunktion, die beim Lesen Datenblöcke liefert. Dadurch können Sie über die Datei iterieren, ohne die gesamte Datei in den Speicher zu laden.

def read_in_chunks(file_object, chunk_size=1024):
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data
Nach dem Login kopieren

Verwendung:

with open('really_big_file.dat') as f:
    for piece in read_in_chunks(f):
        process_data(piece)
Nach dem Login kopieren

Methode 2: Verwenden von Iter und einer Hilfsfunktion

Eine andere Möglichkeit besteht darin, die Iter-Funktion und eine Hilfsfunktion zu verwenden, um jeweils die Größe zu definieren chunk.

f = open('really_big_file.dat')
def read1k():
    return f.read(1024)

for piece in iter(read1k, ''):
    process_data(piece)
Nach dem Login kopieren

Methode 3: Zeilenbasierte Iteration verwenden

Wenn die Datei zeilenbasiert ist, können Sie die in Python integrierte Lazy-Datei nutzen Objekt, das beim Lesen Zeilen liefert.

for line in open('really_big_file.dat'):
    process_data(line)
Nach dem Login kopieren

Diese Lazy-Methoden ermöglichen eine effiziente Verarbeitung großer Dateien, indem nur das Notwendige gelesen wird Teile nacheinander, reduziert den Speicherverbrauch und verhindert Systemabstürze.

Das obige ist der detaillierte Inhalt vonWie kann ich große Dateien in Python effizient verarbeiten, ohne sie vollständig in den Speicher zu laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage