ホームページ > バックエンド開発 > Python チュートリアル > Python 3 を使用してファイル内のテキストを効率的に検索および置換するにはどうすればよいですか?

Python 3 を使用してファイル内のテキストを効率的に検索および置換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-28 18:44:18
オリジナル
991 人が閲覧しました

How Can I Efficiently Search and Replace Text in a File Using Python 3?

Python 3 でファイル内のテキストを検索および置換する

Python 3 では、さまざまな方法を使用してファイル内のテキストを検索および置換できます。方法。一般的なアプローチの 1 つが、提供されたコードに示されています。

コード分析

提供されたコードは、検索および置換するテキストと、ユーザーからのファイル パスを読み取ります。次に、読み取りと書き込みのためにファイルを開き、fileinput を使用して検索テキストの出現を検索し、それを置換テキストに置き換えて、変更されたコンテンツをファイルに書き込みます。

'abcd の置換に関する問題' by 'ram'

報告された置換結果の問題は、文字列 'abcd' が長さよりも長いために発生します。 'ラム'。 「abcd」が「ram」に置き換えられると、置き換えられたテキストの末尾にある余分な文字は削除されず、その結果、上記の「ジャンク文字」が発生します。

解決策

この問題を解決するには、検索文字列と置換文字列の長さの潜在的な違いを考慮する必要があります。正しく動作するコードの更新バージョンは次のとおりです。

import os
import fileinput

print("Text to search for:")
textToSearch = input("> ")

print("Text to replace it with:")
textToReplace = input("> ")

print("File to perform Search-Replace on:")
fileToSearch = input("> ")

tempFile = open(fileToSearch, 'r+')

for line in fileinput.input(fileToSearch):
    if textToSearch in line:
        tempFile.write(line.replace(textToSearch, textToReplace))
    else:
        tempFile.write(line)

tempFile.close()

input('Press Enter to exit...')
ログイン後にコピー

更新された実装

textToSearch のすべての出現を textToReplace に置き換える代わりに、更新されたコードは行を使用します。ループ内で .replace() を実行し、見つかった特定の出現箇所のみが確実に置換されるようにします。この変更により、残留ジャンク文字が削除されます。

メモリ効率の高いソリューション

コードは、ファイルが完全にメモリに収まることを前提としています。ファイルが大きすぎる場合は、メモリの問題を避けるために、ファイルを分割して読み書きすることを検討してください。

以上がPython 3 を使用してファイル内のテキストを効率的に検索および置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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