【Python】ファイルの中の一部の文字列を置換する

Pythonでファイルの中の一部の文字列を置換する方法です。

Python3.7.2

ソースコード

とりあえずパスをベタ書きで簡単に書いてみます。

#coding:utf-8

# ファイルを読み込む
with open(r"C:\Users\UserName\Desktop\example.txt","r",encoding="utf-8") as file:
    filedata=file.read()

# 置換する
filedata=filedata.replace("target_1","replaced_1")
filedata=filedata.replace("target_2","replaced_2")

# ファイルに書き込む
with open(r"C:\Users\UserName\Desktop\example.txt","w",encoding="utf-8") as file:
    file.write(filedata)

ファイルパスを引数で受け取る

次にファイルパスを引数で受け取ってみます。

#coding:utf-8
import argparse

# パーサーを作る
parser = argparse.ArgumentParser(prog='example.py', usage='置換の例', add_help=True)

# 引数を追加
parser.add_argument('filePath', type=str, help='置換するファイルのパス')

# 引数を解析する
args = parser.parse_args()

file_encoding="utf-8"

with open(args.filePath,"r",encoding=file_encoding) as file:
    filedata=file.read()
    
filedata=filedata.replace("target_1","replaced_1")
filedata=filedata.replace("target_2","replaced_2")

with open(args.filePath,"w",encoding=file_encoding) as file:
    file.write(filedata)

前節のものより若干使いやすくなりました。

参考

pythonmemo.hatenablog.jp

www.sejuku.net