Pythonでテキストファイル内の文字列を検索して置換する方法
Pythonでは、ファイルを読み込みながら各行に対して文字列の置換処理を行うことで、テキストファイル内の特定の文字列を簡単に検索・置換できます。基本的な流れは以下のとおりです。
- 元のテキストファイルを読み込みモード(
'r')で開く - 新しいテキストファイルを書き込みモード(
'w')で開く - 元ファイルから1行ずつ読み込み、
str.replace()メソッドで置換しながら新ファイルへ書き込む
以下のコードは、指定したテキストファイル内の「Poetry」という単語をすべて「Prose」に置換し、その結果を新しいテキストファイル「bar.txt」に書き出す例です。
コード例
f1 = open('foo.txt', 'r')
f2 = open('bar.txt', 'w')
for line in f1:
print(line)
f2.write(line.replace('Poetry', 'Prose'))
f1.close()
f2.close()
# 置換後のファイル内容を確認
f2 = open('bar.txt', 'r')
for line in f2:
print(line, end='')
f2.close()
実行結果
このコードを実行すると、次のような出力が得られます。
Poetry is often considered the oldest form of literature. Poetry today is usually written down, but is still sometimes performed. Prose is often considered the oldest form of literature. Prose today is usually written down, but is still sometimes performed.
元のファイルでは「Poetry」となっていた部分が、新しいファイル「bar.txt」ではすべて「Prose」に置き換えられていることが確認できます。
より安全な書き方:with文を使う方法
上記の例ではclose()を明示的に呼び出していますが、with文を使うとファイルのクローズ漏れを防げるため、より安全で推奨される書き方です。
with open('foo.txt', 'r', encoding='utf-8') as f1, \
open('bar.txt', 'w', encoding='utf-8') as f2:
for line in f1:
f2.write(line.replace('Poetry', 'Prose'))
# 置換結果の表示
with open('bar.txt', 'r', encoding='utf-8') as f2:
print(f2.read())
with文を使えば、ブロックを抜けた時点で自動的にファイルが閉じられるため、リソース管理の手間が省けます。また、encoding='utf-8'を指定しておくと、日本語などを含むファイルでも文字化けを防げます。
-
Windows 10のメモ帳でテキストを検索・置換する方法
メモ帳で特定の単語やフレーズを検索して置き換えたい場合、このステップバイステップガイドを参考にすれば、Windows 10の標準搭載アプリ「メモ帳」でテキストの検索と置換が簡単に行えます。複数の単語やフレーズをまとめて処理することも可能です。 無料のテキストエディタの中には、こうした機能をより便利に使えるものもありますが、Windowsに最初から入っているメモ帳だけで作業を完結させたい方は、以下の手順を試してみてください。 メモ帳でテキストを検索する方法 メモ帳でテキストを検索するには、以下の手順に従います。 メモ帳を開き、検索対象のテキスト全体を貼り付ける。 上部のメニューバーから「編集」
-
ChromeとFirefoxでページ内のテキストを検索・置換する方法
ブラウザは、その名のとおりWebページを閲覧するためのツールであり、本来はテキストエディタではありません。そのため、「検索して置き換える(検索・置換)」のようなテキスト編集機能は、標準ではほとんど搭載されていません。しかし、ブログ記事を執筆しているとき、コメントを入力しているとき、メールを作成しているとき、あるいはフォーラムを管理しているときなど、同じ語句が何度も登場するため一括で置き換えたい場面があるかもしれません。そんなときに役立つのが「検索・置換」機能です。この記事では、Google ChromeとFirefoxに検索・置換機能を追加する方法を詳しく解説します。Google Chrome