ファイルの先頭に行を追加するとします。ただし、標準の追加モードを使用するとします。 Python の場合、この行はファイルの末尾に追加されます。これを実現するにはどうすればよいですか?
実装
これを実現するには 2 つの方法があります:
1 番目の方法 (メモリ集中型):
<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>
このメソッドでは、ファイル全体がメモリに読み込まれ、先頭に行が追加され、変更された内容がファイルに上書きされます。
第 2 の方法 (ストリーミング):
<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, end='') else: print(xline, end='')</code>
このメソッドは、ファイルを 1 行ずつストリーミングし、元のファイルを上書きします。 fileinput モジュールを使用して行を反復処理し、指定された行を最初の行の先頭に挿入します。
方法の選択は、ファイル サイズと利用可能なメモリによって異なります。メモリの問題を避けるために、大きなファイルの場合は 2 番目の方法が推奨されます。
以上がPythonでファイルの先頭に行を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。