Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Lelaran Fail Python Saya Gagal pada Percubaan Seterusnya?

Mengapa Lelaran Fail Python Saya Gagal pada Percubaan Seterusnya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-30 02:17:17605semak imbas

Why Does My Python File Iteration Fail on Subsequent Attempts?

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!

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