Membaca Fail CSV Besar dengan Berkesan
Membaca dan memproses fail CSV yang besar dalam Python boleh mencabar kerana had memori. Isu ini menjadi lebih ketara dengan fail yang mengandungi berjuta-juta baris dan ratusan lajur.
Isu Memori dan Pengoptimuman
Kod semasa anda cuba membaca dan menyimpan data daripada CSV fail ke dalam senarai. Walau bagaimanapun, pendekatan ini tidak cekap untuk fail besar kerana ia memuatkan keseluruhan set data ke dalam memori.
Untuk menyelesaikan isu memori ini, proses data semasa anda membacanya. Gunakan fungsi penjana yang menghasilkan satu baris pada satu masa, seperti yang ditunjukkan di bawah:
import csv def getstuff(filename, criterion): with open(filename, "rb") as csvfile: datareader = csv.reader(csvfile) yield next(datareader) # yield the header row count = 0 for row in datareader: if row[3] == criterion: yield row count += 1 elif count: # stop when exceeding the adjacent rows of criteria return
Kod yang dikemas kini ini menghasilkan baris yang sepadan dengan kriteria yang ditentukan, baris demi baris. Ia menghapuskan keperluan untuk menyimpan keseluruhan set data dalam ingatan.
Peningkatan Prestasi
Di luar pengoptimuman memori, terdapat teknik tambahan untuk meningkatkan prestasi:
Dengan menggunakan strategi ini, anda boleh meningkatkan kecekapan kod Python anda dengan ketara untuk mengendalikan fail CSV yang besar.
Atas ialah kandungan terperinci Bagaimana untuk Membaca dan Memproses Fail CSV Besar dengan Berkesan dengan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!