Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Mengulangi Fail Python Dua Kali Menghasilkan Keputusan yang Tidak Dijangka?

Mengapa Mengulangi Fail Python Dua Kali Menghasilkan Keputusan yang Tidak Dijangka?

Patricia Arquette
Lepaskan: 2024-12-06 04:19:09
asal
740 orang telah melayarinya

Why Does Iterating Over a Python File Twice Produce Unexpected Results?

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

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

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

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

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!

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