はじめに
Pythonでファイルを移動するコードです。
ついでに移動先に同名ファイルがあればリネームします。
方法
import glob
import os
import shutil
# 移動先フォルダに同名のファイルがあるかをチェックして、あればリネーム
def duplicate_rename(file_name_w_ext, target_path):
file_path = target_path + '/' + file_name_w_ext
if os.path.isfile(file_path):
file_name, ext = os.path.splitext(file_name_w_ext)
i = 1
while True:
new_file_name_w_ext = f'{file_name}({i}){ext}'
new_file_path = target_path + '/' + new_file_name_w_ext
if not os.path.isfile(new_file_path):
return new_file_name_w_ext
i += 1
# 作業ディレクトリの設定
os.chdir('hoge/fuga')
# ファイル移動先
target_path = 'hoge/piyo'
# リネーム
for file_name_w_ext in glob.glob('*'):
new_file_name_w_ext = duplicate_rename(file_name_w_ext, target_path)
if new_file_name_w_ext:
print(f'rename: {file_name_w_ext} to {new_file_name_w_ext}')
os.rename(file_name_w_ext, new_file_name_w_ext)
# フォルダ移動
for file_name_w_ext in glob.glob('*'):
print(f'moving: {file_name_w_ext}')
shutil.move(file_name_w_ext, target_path)
print('done')