Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail dalam Python?

Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 21:40:12115semak imbas

How Can I Efficiently Read Specific Lines from a File in Python?

Membaca Baris Fail Tertentu Menggunakan Nombor Baris

Apabila memproses fail besar, selalunya perlu membaca baris tertentu sahaja. Untuk mencapai matlamat ini, Python menyediakan beberapa kaedah yang membolehkan anda menavigasi fail dan membaca baris berdasarkan nombor barisnya.

Menggunakan For Loop

Jika fail itu kekangan kecil atau ingatan tidak menjadi masalah, anda boleh menggunakan gelung for untuk melelaran melalui fail dan membaca baris mengikut nombor barisnya. Contohnya, untuk membaca baris 26 dan 30 daripada fail:

fp = open("file")
for i, line in enumerate(fp):
    if i == 25:
        # 26th line
    elif i == 29:
        # 30th line
    elif i > 29:
        break
fp.close()

Perhatikan bahawa nombor baris dalam Python bermula dari 0, jadi nombor baris 26 sepadan dengan baris ke-27 dalam fail.

Menggunakan Pernyataan dengan (Python 2.6 atau lebih baru)

Satu lagi pendekatan, yang diperkenalkan dalam Python 2.6, melibatkan penggunaan pernyataan with untuk membuka fail dan mengulangi melalui barisnya:

with open("file") as fp:
    for i, line in enumerate(fp):
        if i == 25:
            # 26th line
        elif i == 29:
            # 30th line
        elif i > 29:
            break

Kaedah ini memastikan bahawa fail ditutup secara automatik apabila gelung keluar, walaupun sekiranya berlaku pengecualian.

Dengan menggunakan teknik ini, anda boleh membaca baris tertentu daripada fail dengan cekap tanpa perlu menghuraikan keseluruhan fail atau menggunakan luaran perpustakaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail dalam Python?. 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