Membaca Fail Teks Besar Baris demi Baris dengan Cekap: Pendekatan Memori-Sedar
Tugas di tangan melibatkan pemprosesan fail teks yang besar yang melebihi 5GB tanpa membebankan sumber memori dengan memuatkan keseluruhan kandungannya sekaligus. Untuk mencapai matlamat ini, kami boleh menggunakan pendekatan alternatif yang membenarkan pembacaan baris demi baris tanpa penggunaan memori yang berlebihan.
Penyelesaian: Pembacaan Fail Baris demi Baris
Daripada menggunakan fungsi readlines(), yang mencipta senarai besar dalam ingatan, kita boleh lelaran ke atas objek fail menggunakan gelung for. Pendekatan ini mengelak daripada mencipta perwakilan dalam memori bagi keseluruhan fail, membolehkan kami memprosesnya tanpa menggunakan jumlah memori yang banyak.
Pelaksanaan Menggunakan Pengurus Konteks
Untuk cekap pengurusan sumber, adalah disyorkan untuk menggunakan pengurus konteks dengan open(). Dengan membungkus objek fail dalam pernyataan dengan, kami memastikan bahawa fail ditutup dengan betul selepas membaca, walaupun pengecualian dibangkitkan semasa pemprosesan:
with open("log.txt") as infile: for line in infile: print(line)
Coretan kod ini membuka fail "log.txt" menggunakan pengurus konteks. Gelung for kemudian melelang ke atas fail baris demi baris, dan untuk setiap baris, ia melakukan operasi yang diingini, seperti mencetaknya ke konsol.
Kelebihan Pendekatan Ini:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memproses Fail Teks Besar Dengan Cekap Baris demi Baris Tanpa Melebihi Had Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!