ホームページ > バックエンド開発 > Python チュートリアル > Python でファイルの先頭に効率的に行を追加するにはどうすればよいですか?

Python でファイルの先頭に効率的に行を追加するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-03 05:25:32
オリジナル
780 人が閲覧しました

How Can I Efficiently Add a Line to the Beginning of a File in Python?

ファイルの先頭に行を追加する

ファイルの先頭を変更することは、特にファイルが大きい場合に困難になることがあります。従来、回避策として別のファイルが使用されていました。ただし、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート