※追記:テキスト置換スクリプトはリンク先に改善版を掲載しています。 上記リンク先スクリプトをご使用ください。
※以下は改善前のスクリプトです。ご注意ください。
定期的に以下のような作業が必要になったので、ツールを作ってみました。
- 30個以上のテキストファイルのファイル名の一部を置換する
- 上記テキストファイル内の文字列も、一部を置換する
- 置換する文字列は全ファイル共通
- テキストファイルの文字コードはShift_JIS
pythonというか、プログラミングに触れるのは初めてで、python3をインストールするところから始めました。
プログラミング経験はほぼ皆無の状態から、いろいろコピペしつつも、3時間で下記コードが書けました。
python、わかりやすいかもしれない。
# coding: UTF-8 import sys import os import re #文字コード指定に必要 import codecs #置換文字列を指定 name_old='v001' #この文字を含むファイルを操作+ファイル名の置換元文字列 name_new='v002' #ファイル名の置換後文字列 txt_old='v001' #ファイル内の置換元 文字列 txt_new='v002a' #ファイル内の置換後文字列 #パス指定小楽でスクリプト配置フォルダのファイル一覧取得 files = os.listdir() for file in files: #まず.txtを含むファイルのみ読込 txt = re.compile(".txt") if txt.search(file): # ファイル名の置換前後の文字列を指定 file_new = file.replace(name_old,name_new) read_file = codecs.open(file, 'r', 'shift_jis') write_file = codecs.open(file_new, 'w', 'shift_jis') lines = read_file.readlines() #読み込み lines2 = [] for line in lines: line = line.replace(txt_old,txt_new) #テキスト置換 lines2.append(line) #別リストにする else: write_file.write(''.join(lines2)) #書き込み read_file.close() # os.rename(file, file_new) else: pass