Как найти множество файлов по названию?

У меня есть множество файлов со случайными названиями, мне их надо рассортировать по папкам ( таблица с названиями файлов и папками куда их нужно перенести). Есть ли возможность это сделать автоматически? Или хотя бы возможность найти сразу 30 файлов с разными именами?
  • Вопрос задан
  • 1072 просмотра
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker
Программист, энтузиаст
Такое можно сделать быстро с помощью экселя. Из таблицы формируете столбец, в котором будет сконкатенированы команды вида
rename прошлый\путь\к\файлу.txt новый\путь\к\файлу.txt

построчно для каждого файла. Копируете этот столбец, вставляете в текстовый .bat-файл и выполняете его.
Ответ написан
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Вариант на 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.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы