Lelaran Pada Fail Dua Kali: Memahami Mekanisme Lelaran Fail Python
Dalam Python, lelaran pada fail melibatkan membaca baris demi baris menggunakan gelung membina. Walau bagaimanapun, percubaan untuk melelaran pada fail yang sama untuk kali kedua selalunya menghasilkan hasil yang tidak dijangka: tiada output.
Tingkah laku ini disebabkan oleh mekanisme lelaran fail asas dalam Python. Apabila anda melaksanakan gelung pertama:
for line in f.readlines(): print(line)
fail dibaca hingga hujungnya. Ini adalah sama seperti membaca pemain pita ke hujung pita. Apabila penghujungnya dicapai, tiada lagi data untuk dibaca.
Untuk mengulang semula fail, anda mesti menetapkan semula penuding fail ke permulaan. Ini boleh dicapai dalam dua cara:
1. Menggunakan f.seek(0):
f.seek(0) for line in f.readlines(): print(line)
Memanggil f.seek(0) letakkan semula penuding fail ke permulaan fail, membolehkan anda membacanya semula.
2. Menutup dan Membuka Semula Fail:
f.close() f = open('baby1990.html', 'rU') for line in f.readlines(): print(line)
Menutup dan membuka semula fail secara automatik menetapkan semula penuding fail ke permulaan.
Alternatif: Menggunakan dengan Sekat:
Pernyataan dengan menyediakan cara yang lebih mudah dan selamat untuk digunakan fail:
with open('baby1990.html', 'rU') as f: for line in f: print(line)
Dalam blok dengan, fail ditutup secara automatik apabila blok itu keluar, tanpa mengira pengecualian atau gelung. Ini menghapuskan keperluan untuk pengendalian fail manual.
Atas ialah kandungan terperinci Mengapa Mengulangi Fail Python Dua Kali Menghasilkan Keputusan yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!