'21/12/11更新:新しいファイルパスをリストから作成する方法に変更した。またzip圧縮するコードも追記。
本記事では、下図のようにファイルパスからフォルダパス,フォルダ名,ファイル名,拡張子,拡張子なしファイル名を取得する等の雛形コードを載せました。さらに、ファイル名にサブフォルダ名(の番号)を追記して新しいファイル名を作成して、カレントディレクトリへコピーするコードも載せています。

■本プログラム
import pathlib
import os
import shutil
get_file_list = list(pathlib.Path(r'./data_folder').glob('**/data.txt'))
save_dir_name = 'new_dir'
for file_path in get_file_list:
print('file_path -> ', file_path)
dir_path = file_path.parent
print('dir_path -> ', dir_path)
dir_name = dir_path.name
print('dir_name -> ', dir_name)
dir_name2 = dir_name[dir_name.rfind('_') + 1:]
print('dir_name2 -> ', dir_name2)
dir_name3 = dir_name2[1:]
print('dir_name3 -> ', dir_name3)
file_name = file_path.name
print('file_name -> ', file_name)
file_name2 = file_path.suffix
print('file_name2 -> ', file_name2)
file_name3 = file_name.replace(file_name2, '')
print('file_name3 -> ', file_name3)
new_file_name = file_name3 + '_' + dir_name3 + file_name2
print('new_file_name -> ', new_file_name)
my_path = os.getcwd()
my_path_list = [my_path, save_dir_name, new_file_name]
new_file_path = os.path.join(*my_path_list)
print('new_file_path -> ', new_file_path)
shutil.copy2(file_path, new_file_path)
print()
shutil.make_archive(save_dir_name, 'zip', root_dir = save_dir_name)
以上
<広告>
リンク