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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-15 20:33:10950ブラウズ

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 サイトの他の関連記事を参照してください。

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