Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membaca dan Memproses Fail Besar dengan Cekap dalam Python Menggunakan Penilaian Lazy?
Kaedah Malas untuk Membaca Fail Besar yang Cekap dalam Python
Membaca fail besar dalam Python boleh menjadi intensif dari segi pengiraan dan boleh menyebabkan sistem menjadi perlahan. Untuk menangani isu ini, kaedah malas disyorkan, yang melibatkan membaca dan memproses fail dalam bahagian yang boleh diurus. Berikut ialah beberapa pilihan untuk melaksanakan kaedah malas:
Menggunakan Hasil untuk Penilaian Malas:
Kata kunci hasil boleh digunakan untuk mencipta fungsi malas yang mengembalikan elemen atas permintaan . Kod berikut menunjukkan cara menggunakan hasil untuk membaca fail dalam ketulan:
def read_in_chunks(file_object, chunk_size=1024): """Lazy function (generator) to read a file piece by piece. Default chunk size: 1k.""" while True: data = file_object.read(chunk_size) if not data: break yield data
Untuk menggunakan fungsi ini, anda boleh mengulangi ketulan yang dijana dan memprosesnya:
with open('really_big_file.dat') as f: for piece in read_in_chunks(f): process_data(piece)
Menggunakan Iter dan Fungsi Pembantu:
Sebagai alternatif, anda boleh menggabungkan iter fungsi dengan fungsi pembantu untuk mencipta penjana:
f = open('really_big_file.dat') def read1k(): return f.read(1024) for piece in iter(read1k, ''): process_data(piece)
Pendekatan ini serupa dengan yang sebelumnya, tetapi menggunakan fungsi yang berasingan untuk menjana ketulan.
Barisan Bacaan- Fail Berasaskan:
Jika fail mengandungi baris data, anda boleh memanfaatkan sifat malas objek fail itu sendiri:
for line in open('really_big_file.dat'): process_data(line)
Kaedah ini sesuai untuk fail yang garisan bebas dan boleh diproses sekeping demi sekeping.
Dengan menggunakan teknik penilaian malas, anda boleh membaca dan memproses fail besar dengan cekap. tanpa mengatasi sumber sistem. Kaedah ini membolehkan anda mengawal penggunaan memori dan masa pemprosesan, membolehkan anda mengendalikan fail yang terbesar sekalipun dengan lancar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca dan Memproses Fail Besar dengan Cekap dalam Python Menggunakan Penilaian Lazy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!