Вариант на Python:
import os
# path to main directory
path = '/your/path'
# table
files = {
'file_1.txt': 'dir_1',
'file_2.txt': 'dir_1/dir_2',
'file_3.txt': 'dir_1/dir_2/dir_3'
# others
}
# moving files
for file, directory in files.items():
path_file = os.path.join(path, file)
path_dir = os.path.join(path, directory)
# checking for existence and creating directories if needed
if not os.path.exists(path_dir):
os.makedirs(path_dir)
# checking for existence of the file in the target directory
if os.path.exists(os.path.join(path_dir, file)):
print(f"File {file} already exists in directory {directory}, skip.")
else:
os.rename(path_file, os.path.join(path_dir, file))
print(f"The {file} file has been moved to a folder {directory}, success.")
# example moving:
#
# /your/path
# |-- /dir_1/file_1.txt
# |-- /dir_1/dir_2/file_2.txt
# |-- /dir_1/dir_2/dir_3/file_3.txt
1. Возьмет данные из таблицы files.
2. Переместит файлы (не существующие директории будут созданы, а уже существующие файлы не будет перезаписаны).
Файлы необходимо разместить по адресу из переменной path.