Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Lelaran Fail Berulang dalam Python Kadang-kadang Mengembalikan Keputusan Kosong?

Mengapa Lelaran Fail Berulang dalam Python Kadang-kadang Mengembalikan Keputusan Kosong?

Barbara Streisand
Barbara Streisandasal
2024-12-05 12:45:11267semak imbas

Why Does Repeated File Iteration in Python Sometimes Return Empty Results?

Isu dan Penyelesaian Lelaran Fail

Lelaran pada fail boleh menjadi tugas biasa dalam pengaturcaraan. Walau bagaimanapun, mungkin terdapat keadaan di mana lelaran pada fail yang sama beberapa kali tidak menghasilkan hasil yang diharapkan. Ini boleh dikaitkan dengan gelagat lelaran fail yang wujud dalam Python.

Dalam Python, apabila fail dibuka dalam mod bacaan ('r' atau 'rU'), kandungannya dibaca ke dalam memori baris demi baris menggunakan kaedah readlines(). Ini membolehkan capaian yang cekap kepada kandungan fail. Walau bagaimanapun, lelaran berikutnya ke atas fail yang sama akan mengembalikan senarai kosong, kerana penuding fail telah sampai ke penghujung fail semasa lelaran awal.

Untuk menangani isu ini, satu pendekatan ialah menetapkan semula penuding fail secara manual ke permulaan fail menggunakan kaedah seek(0). Ini membolehkan lelaran seterusnya membaca fail semula dari mula.

Penyelesaian alternatif yang memudahkan pengendalian fail ialah menggunakan pernyataan dengan. Pernyataan dengan secara automatik membuka fail dan mengendalikan penutupannya apabila keluar dari blok. Ini memastikan pengendalian fail yang betul dan menghapuskan keperluan untuk menutup dan mencari fail secara manual.

Contohnya:

with open('baby1990.html', 'rU') as f:
    for line in f:
        print(line)

Dalam kes ini, fail dibuka dan ditutup secara automatik dalam blok dengan, membenarkan lelaran berulang ke atas fail tanpa mengurus objek fail secara manual.

Atas ialah kandungan terperinci Mengapa Lelaran Fail Berulang dalam Python Kadang-kadang Mengembalikan Keputusan Kosong?. 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