Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Membaca Fail CSV Besar dengan Cekap dalam Python 2.7?
Membaca Fail CSV Besar dengan Python 2.7
Menavigasi cabaran membaca fail CSV yang besar dengan Python 2.7 boleh menimbulkan masalah ingatan, terutamanya dengan fail melebihi 300,000 baris. Untuk mengatasi halangan ini, adalah penting untuk mengelak daripada membaca keseluruhan fail ke dalam memori.
Teknik Pengurusan Memori
Menggunakan penjana membolehkan pemprosesan yang cekap memori. Daripada mengumpul semua baris dalam senarai, hasilkan setiap baris secara individu. Pendekatan ini, yang dicontohkan oleh penjana fungsi getstuff, mengurangkan penggunaan memori dengan ketara.
Selain itu, pertimbangkan pengoptimuman seperti fungsi dropwhile dan takewhile daripada modul itertools. Ini memudahkan penapisan yang cekap dengan melangkau baris yang tidak berkaitan, seterusnya menjimatkan memori.
Pengoptimuman Prestasi
Di luar pengurusan memori, meningkatkan prestasi melibatkan meminimumkan operasi yang tidak perlu. Fungsi getdata harus berulang terus ke atas penjana getstuff, menghapuskan senarai perantaraan yang tidak perlu.
Contoh Penggunaan
Mengolah semula kod menggunakan penjana menghasilkan penyelesaian yang lebih cekap:
def getstuff(filename, criterion): ... # Same generator code as above def getdata(filename, criteria): ... # Same generator code as above # Process rows directly for row in getdata(somefilename, sequence_of_criteria): ... # Process the current row
Kod ini secara berkesan memproses satu baris pada satu masa, dengan ketara mengurangkan memori penggunaan dan meningkatkan prestasi, walaupun untuk fail CSV yang besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Fail CSV Besar dengan Cekap dalam Python 2.7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!