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
Lepaskan: 2024-12-14 01:07:11
asal
861 orang telah melayarinya

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'))
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan