Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Python Boleh Mengira Baris dengan Cekap dalam Fail Sangat Besar?

Bagaimanakah Python Boleh Mengira Baris dengan Cekap dalam Fail Sangat Besar?

Susan Sarandon
Susan Sarandonasal
2024-12-14 01:07:11864semak imbas

How Can Python Efficiently Count Lines in Very Large Files?

Pengiraan Baris Cekap dalam Fail Besar dengan Python

Menentukan bilangan baris fail besar adalah penting untuk pelbagai aplikasi. Walaupun pendekatan konvensional menggunakan untuk gelung boleh memakan masa dan intensif memori, Python menawarkan penyelesaian yang dioptimumkan.

Pengiraan Baris Ringkas dan Cekap

Coretan kod berikut mempamerkan pendekatan satu baris untuk pengiraan baris, mengatasi prestasi kaedah gelung yang dibentangkan dalam soalan:

num_lines = sum(1 for _ in open('myfile.txt'))

Kod ini memanfaatkan ungkapan penjana Python, yang berulang pada setiap baris dalam fail, tanpa menahan semua baris dalam ingatan. Jumlah (1 untuk _ dalam ...) pembinaan mengira bilangan baris.

Peningkatan Prestasi

Untuk pengoptimuman kelajuan selanjutnya dan peningkatan keteguhan, pertimbangkan peningkatan berikut:

  • Baca dalam mod binari: Mod rb memastikan pembacaan data binari yang cekap daripada fail.
  • Gunakan dengan blok: Blok dengan secara automatik menutup pemegang fail, memastikan pembersihan yang betul.

Coretan kod yang dikemas kini dengan tambahan ini:

with open("myfile.txt", "rb") as f:
    num_lines = sum(1 for _ in f)

Nota

Untuk mod rbU yang ditamatkan dalam Python 3.3 dan kemudian, gunakan rb sebagai gantinya. Mod ini dialih keluar dalam Python 3.11.

Atas ialah kandungan terperinci Bagaimanakah Python Boleh Mengira Baris dengan Cekap dalam Fail Sangat Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn