ファイル内の行をその場で変更する
ファイルを 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 サイトの他の関連記事を参照してください。