異なるテキスト長での 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 サイトの他の関連記事を参照してください。