Isu Lelaran Fail dengan Percubaan Seterusnya
Lelaran pada fail menggunakan gelung for digunakan secara meluas dalam Python untuk memproses data baris demi baris. Walau bagaimanapun, isu yang menarik timbul apabila cuba mengulangi fail yang sama beberapa kali.
Apabila cuba mengulang pada fail terbuka untuk kali kedua, kaedah readlines() tidak menghasilkan output, walaupun berjaya membaca keseluruhan fail pada lelaran awal. Untuk menyelesaikan isu ini, adalah perlu sama ada menutup fail dan membukanya semula atau menggunakan f.seek(0) untuk menetapkan semula penuding fail.
Memahami tingkah laku ini melibatkan pengecaman bahawa operasi readlines() awal membaca keseluruhan fail ke dalam ingatan. Ini bermakna apabila cuba mengulang kali kedua, tiada lagi data untuk dibaca kerana penuding fail telah sampai ke penghujungnya.
Untuk mengelakkan pengehadan sedemikian, pertimbangkan untuk menggunakan sintaks dengan, yang mengendalikan penutupan fail secara automatik. Pengubahsuaian berikut memastikan lelaran yang betul:
with open('baby1990.html', 'rU') as f: for line in f: print(line)
Pendekatan ini memastikan fail ditutup secara automatik apabila blok selesai, membenarkan berbilang lelaran yang berjaya tanpa memerlukan penutupan dan pembukaan semula secara manual.
Atas ialah kandungan terperinci Mengapa Lelaran Fail Python Saya Gagal pada Percubaan Seterusnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!