ホームページ > バックエンド開発 > Python チュートリアル > Python の検索と置換は、ファイル編集時の可変テキスト長をどのように処理できるのでしょうか?

Python の検索と置換は、ファイル編集時の可変テキスト長をどのように処理できるのでしょうか?

Linda Hamilton
リリース: 2024-12-15 20:33:10
オリジナル
946 人が閲覧しました

How Can Python's Search-and-Replace Handle Variable Text Lengths in File Editing?

異なるテキスト長での Python ファイルの検索と置換

Python 3 を使用してファイル内で検索と置換を実行しようとすると、一部のユーザーが置換テキストが元のテキストより短いか長い場合に問題が発生します。これにより、意図しない文字がファイルに追加される可能性があります。

提供されたコードを検討してください:

# Get user input for search and replacement text
textToSearch, textToReplace, fileToSearch = input("Text to search for: "), input("Text to replace it with: "), input("File to perform Search-Replace on: ")

# Open the file and loop through each line
with open(fileToSearch, 'r+') as tempFile:
    for line in fileinput.input(fileToSearch):
        # Perform replacement only when a match is found
        if textToSearch in line:
            line = line.replace(textToSearch, textToReplace)
        # Write the modified line back to the file
        tempFile.write(line)
ログイン後にコピー

ただし、このアプローチは、残りの文字として長いテキストを短いテキストに置き換える場合には失敗します。原文のまま

解決策:

この問題に対処するには、ファイル全体をメモリに読み取り、検索および置換操作を実行してから、変更されたファイルを書き込むことをお勧めします。コンテンツを別の手順でファイルに戻します:

# Read the file into memory
with open('file.txt', 'r') as file:
    filedata = file.read()

# Perform the replacement
filedata = filedata.replace('abcd', 'ram')

# Write the modified content back to the file
with open('file.txt', 'w') as file:
    file.write(filedata)
ログイン後にコピー

このメソッドにより、意図しないものを導入することなくファイルが適切に変更されます。文字。

以上がPython の検索と置換は、ファイル編集時の可変テキスト長をどのように処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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