Pythonでファイル内のテキストを検索して置き換える

Pythonでファイル内のテキストを検索して置き換えしてみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■テキストファイルの用意

今回はテキストファイル内のテキストを検索し、別のテキストに置き換えしてみますので、まずはテキストファイルを用意します。

今回は「C:\Users\user_\test(フォルダパス)」内に「test01.txt」というテキストファイルを用意しました。テキストファイル内にはテキスト(日本語)が記述されています。

■Pythonを使用し、テキストファイル内のテキストを検索して置き換える

テキストファイルの用意ができましたので、Pythonを使用し、テキストファイル内のテキストを検索して置き換えるスクリプトを書いていきます。

■コード

search_text = "曇り"

replace_text = "晴れ"

with open(r"C:\Users\user_\test\test01.txt","r",encoding="utf-8") as file:
    data = file.read()

    data = data.replace(search_text,replace_text)

with open(r"C:\Users\user_\test\test01.txt","w",encoding="utf-8") as file:
    file.write(data)

print("テキストの置き換えが完了しました")

今回は、search_textという変数を定義します。定義した変数内に今回用意したテキストファイル内で検索する文字列を格納します。

格納後、replace_textという変数を定義します。定義した変数内に置き換えする文字列を格納します。

その後、with構文を使用し、ファイル操作をするためにopen()関数を使用します。関数の括弧内には、第1の引数,パラメータとして今回用意したファイルが置かれているフォルダパスとファイル名を渡します。第2の引数,パラメータとしてファイルを読み込みモード「r」で開くため、rを渡します。第3の引数,パラメータは、文字化けが発生しないように「encoding=”utf-8″」を渡します。

これで今回用意したファイルが読み込みモード「r」で開いた状態になります。その後、dataという変数を定義し、その中でread()関数を使用し、ファイル内のコンテンツを読み込み、data変数に格納します。

その後、dataという変数内でreplace()関数を使用します。関数の括弧内に、第1の引数,パラメータとして検索する文字列が格納されたsearch_text変数を渡します。第2の引数,パラメータとして置き換えする文字列が格納されたreplace_text変数を渡します。

再びwith構文を使用し、今度はファイルに置き換えした後のデータを書き込むためにopen()関数を使用します。第1の引数,パラメータとして今回用意したファイルが置かれているフォルダパスとファイル名を渡します。第2の引数,パラメータとしてファイルを書き込みモード「w」で開くため、wを渡します。第3の引数,パラメータは、文字化けが発生しないように「encoding=”utf-8″」を渡します。

そして、write()関数を使用します。関数の括弧内には、引数,パラメータとしてテキストが置き換えした後のデータが格納されたdata変数を渡します。これでファイルへ書き込みが行われ、完了となります。

最後に、print()関数で、ユーザーに書き込みの完了を伝えるために、文字列を出力します。

■実行・検証

このスクリプトを「search_replace_text.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、「テキストの置き換えが完了しました」と出力されました。

出力後、今回用意したテキストファイルを確認すると、自動的にファイル内のテキストが検索され、テキストが置き換えられていることを確認しました。

コメント

タイトルとURLをコピーしました