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!