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
Lepaskan: 2024-12-05 12:45:11
asal
320 orang telah melayarinya

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

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!

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