Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyediakan Baris ke Permulaan Fail dalam Python?

Bagaimana untuk menyediakan Baris ke Permulaan Fail dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 10:50:30400semak imbas

How to Prepend a Line to the Beginning of a File in Python?

Inplace Prepending ke Permulaan Fail

Apabila cuba menambah baris pada permulaan fail menggunakan mod tambah (' a'), pengguna mungkin menghadapi tulisan yang tidak diingini pada penghujung fail kerana penuding fail secara automatik memajukan ke penghujung.

Untuk mengatasi had ini dan benar-benar menambah baris ke permulaan fail, beberapa kaedah boleh digunakan :

Kaedah 1: Membaca dan Menulis Semula Fail

Jika memuatkan keseluruhan fail ke dalam memori boleh dilaksanakan, fungsi berikut boleh digunakan:

<code class="python">def line_prepender(filename, line):
    with open(filename, 'r+') as f:
        content = f.read()
        f.seek(0, 0)
        f.write(line.rstrip('\r\n') + '\n' + content)</code>

Pendekatan ini memuatkan kandungan fail ke dalam kandungan berubah-ubah, membenarkan baris didahulukan dan kandungan yang diubah suai ditulis semula ke permulaan fail.

Kaedah 2: Menggunakan Input Fail Modul

Pendekatan alternatif melibatkan penggunaan modul input fail:

<code class="python">def line_pre_adder(filename, line_to_prepend):
    f = fileinput.input(filename, inplace=1)
    for xline in f:
        if f.isfirstline():
            print line_to_prepend.rstrip('\r\n') + '\n' + xline,
        else:
            print xline,</code>

Kaedah ini berulang ke atas baris fail, dan apabila menemui baris pertama, prapreprepkan baris yang ditentukan kepadanya sebelum mencetak kedua-dua baris.

Mekanisme tepat kaedah ini tidak sepenuhnya jelas, tetapi ia membenarkan pengeditan menggantikan fail tanpa perlu memuatkan keseluruhan kandungan ke dalam memori, yang berpotensi menjadikannya sesuai untuk fail yang lebih besar.

Atas ialah kandungan terperinci Bagaimana untuk menyediakan Baris ke Permulaan Fail dalam Python?. 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