[Python]replace()でファイルの中身の文字列を置換

スポンサーリンク

replace()でファイルの中身の文字列を置換

下記の形式で、replace()で文字列を置換することができます。
'str'を 'AFTER'に置換する場合には、下記のように書きます。

after = string.replace('str', 'AFTER')

置換回数を指定することもできます。
例えば、1回のみ置換する場合には、下記のように引数に1を指定します。
after = string.replace('str', 'AFTER', 1)

それでは、ファイルの中身を置換する場合です。

ファイルをオープンしたあと、read()でファイルの中身を変数fileTextに読み込みます。
参考:[Python]ファイルを読み込むread()/readlines()/readline()の使い方

そして、fileText.replace()で置換を行います。
ファイルオープンしてread()すれば、あとはreplace()を使うだけですね。

filename = 'sample.txt'
with open(filename, 'r') as f:
	fileText = f.read()
	after = fileText.replace('str', 'AFTER')
	print(after)

下記のように、置換結果で新規にファイルを生成しても良いかと思います。
filename = 'sample2.txt'
with open(filename, 'w') as f:
	f.write(after)

スポンサーリンク

サンプルコード

下記のように、sample.txtがあったとします。

 $ cat sample.txt 
string

下記がサンプルコードになります。
 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

string = "stringstringtext"

after = string.replace('str', 'AFTER')
print(after)

after = string.replace('str', 'AFTER', 1)
print(after)

filename = 'sample.txt'
with open(filename, 'r') as f:
	fileText = f.read()
	after = fileText.replace('str', 'AFTER')
	print(after)

filename = 'sample2.txt'
with open(filename, 'w') as f:
	f.write(after)

下記が実行結果になります。
 $ ./sample.py 
AFTERingAFTERingtext
AFTERingstringtext
AFTERing

sample2.txt は下記のように生成されて、文字列が置換されているのが確認できます。
 $ cat sample2.txt 
AFTERing

スポンサーリンク