はじめに

昨年、大量のファイルに含まれる特定の単語を置換する必要があったのでPythonスクリプトを書いてみました。

とりあえず作成したスクリプト

 1#module import
 2import pathlib
 3import tkinter
 4import tkinter.filedialog
 5
 6#dialog表示処理
 7root = tkinter.Tk()
 8root.withdraw()
 9
10#拡張子をすべてのファイルに指定
11fTyp = [("すべてのファイル","*")]
12
13#このスクリプトがあるディレクトリを調べる
14iDir = pathlib.Path(__file__).resolve
15
16#ダイアログのタイトルを格納
17t_Dir = 'ファイルを選択'
18
19#fileはタプルとして格納されている(Pathは複数追加できるようにしている)
20file = tkinter.filedialog.askopenfilenames(filetypes = fTyp,initialdir = iDir,title = t_Dir)
21print(file)
22
23#空白のlistを作成する(tuple→list変更)
24dir_pathlists = []
25for pickup_1 in file:
26    dir_pathlists.append(pickup_1)
27
28#1ファイルずつ取出
29for dir_pathlist in dir_pathlists:
30    with open(dir_pathlist, encoding="cp932") as f:
31        data_lines = f.read()
32
33    #文字列置換
34    data_lines = data_lines.replace("置換前word", "置換後のword")
35
36    #上書き保存される
37    with open(dir_pathlist, mode="w", encoding="cp932") as f:
38        f.write(data_lines)

注意する点

気をつける点として、置換した後のファイルは既存ファイルを上書きしてしまうこと。 戻せないのでバックアップはとっておいたほうがよいですね。