ホームページ >バックエンド開発 >Python チュートリアル >一時ファイルを作成せずに、ファイル内の行をその場で効率的に変更するにはどうすればよいですか?

一時ファイルを作成せずに、ファイル内の行をその場で効率的に変更するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-29 10:35:10999ブラウズ

How Can I Efficiently Modify Lines in a File In-Place Without Creating a Temporary File?

ファイル内の行をその場で変更する

ファイルを 1 行ずつ効率的に解析し、ファイルを作成せずに特定の行を変更することは可能ですか?コピーまたは一時的なファイル?

答え:

はい、バックアップ ファイルを使用してインプレース編集をシミュレートすることができます。 fileinput モジュールは、これに必要な機能を提供します。

例:

コマンドライン引数として提供されたファイルから特定の条件を満たさない行を削除するスクリプトを考えてみましょう。 stdin:

import fileinput

for line in fileinput.input(inplace=True, backup='.bak'):
    if some_condition(line):
        print(line)  # The modified line is output to the current file

Usage:

first_file.txt および Second_file.txt から some_condition を満たさない行を削除するには、次のコマンドを実行します。

python grep_some_condition.py first_file.txt second_file.txt

完了すると、first_file.txt と Second_file.txt が作成されます。 some_condition() 述語を満たす行のみが含まれます。

このアプローチでは、編集プロセス中にバックアップ ファイル .bak を作成し、エラーが発生した場合に元のファイルを保存することで、効率的なインプレース変更が保証されます。

以上が一時ファイルを作成せずに、ファイル内の行をその場で効率的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。