ファイルの先頭に行を追加する
ファイルの先頭を変更することは、特にファイルが大きい場合に困難になることがあります。従来、回避策として別のファイルが使用されていました。ただし、Python を使用してこれを実現するより効率的な方法があります。
ファイル モードについて
追加モード ('a') でファイルを開くとき、書き込みはすべてファイルポインタの現在位置に関係なく、ファイルの末尾に送られます。これは、ファイルの先頭を変更しようとするときに問題になります。
解決策 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: fileinput の使用
大きなファイルの場合は、fileinput モジュールが役立ちます。
<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 行ずつ反復処理して、最初の行の先頭に新しい行を出力し、残りの行を変更せずに出力します。この方法では、ファイルが書き込み可能である必要があることに注意してください。
以上がPython でファイルの先頭に効率的に行を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。