わくわくプログラミング忘備録

都内でエンジニアをしている者です。このブログは自分が困ったこととその解決策のメモ集です。

ディレクトリ内のファイル名を一括で変更するpythonコード

わざわざ書いておくほどのものでもないが、フォルダ内のファイル名を一括で変更するコードをおいておきます。
まず、作業ディレクトリ上に
target
results
という2つのフォルダーを作って、targetの中に名前を変えたいファイルをぶち込んでおきます。
そしてこのコードを実行すると、名前が1.jpg,2.jpg,3.jpgという風に変更されたものがresults内に吐き出されます。



import os
import glob
import argparse
import shutil
#help message
parser = argparse.ArgumentParser(usage='Make "target" folder and put
images to be renamed in it. The renamed images will be in "results"
folder.',add_help=True)
# 引数の追加
parser.add_argument('-c', '--copy',default=1,help="1:copy,0:move")
args = parser.parse_args()
#名前を変えたい画像たちをいれておくフォルダ名
target_folder = 'target'
path = target_folder+'/*'
files=glob.glob(path)
assert len(files)>0,"target folder is empty."
i=1
#コピーする場合
if bool(int(args.copy)):
for img in files:
shutil.copy(img, "results/"+str(i)+'.jpg')
i+=1
#移動する場合
else:
for img in files:
os.rename(img,"results/"+str(i)+'.jpg')
i+=1
#結果はresultsフォルダーに入る