Скопируйте файл, переименуйте его, повторите и повторите

Я использую os.renmae для переименования файлов и их перемещения, но мне не удается выполнить следующую задачу.

У меня есть основная папка, содержащая подпапки со структурой ниже.

Основная папка "Назад", содержащая подпапки с именами из букв и цифр, например, A01, A02, B01, B02 и т. Д. Внутри каждой из этих папок есть набор файлов, среди которых есть файл с именем "rad", то есть файл Пример пути выглядит примерно так:

Назад /A01/ рад /A02/ рад /B01/ рад... / рад

У меня есть другая подпапка под названием "rads" внутри основного "Back" Back/rads

Что я хочу сделать, это скопировать только все файлы Rad, из каждой папки в задней части и переместить их в папку "RADS" и назовите каждый файл Rad в зависимости от папки, из которой он пришел. например, rad_A01, rad_A02, rad_B01 и т. д.

Я не мог понять, как увеличить номер папки при перемещении файлов.

os.rename ("Назад // Рад, Назад / Радс / Рад_")

Я подумал о том, чтобы составить список всех имен файлов, а затем сделать что-то вроде x в списке, выполнить os.rename (), но я не знал, как сказать python, чтобы имя файла соответствовало подпапке, из которой он получен как они не являются непрерывным рядом. Любая помощь приветствуется. заранее спасибо

1 ответ

import os
for subdir, dirs, files in os.walk('./Back/'):
    for file in files:
        filepath = subdir+os.sep+file
        if filepath.endswith("rad.txt"):
            par_dir = os.path.split(os.path.dirname(filepath))[1]
            os.system('cp '+filepath+' ./Back/rads/rad_'+par_dir)  

сохраните этот файл Python рядом с каталогом Back, и он должен работать нормально! Этот код перебирает все файлы в каждом подкаталоге Back, проверяет все файлы с именем rad.txt, добавляет имя родительского каталога и копирует в папку rads. Примечание: я сохранил рад файлы с расширением.txt, измените его соответствующим образом.

Другие вопросы по тегам