Как исключить подкаталог при извлечении файла из него в родительский каталог в python?

Поэтому я хочу создать эту систему фильтрации файлов, чтобы они соответствовали семплам ударных в соответствующих папках. Мне удалось успешно отфильтровать и сопоставить каждый файл, который я хотел, с соответствующей папкой, однако вместе с файлом приходит каталог, в котором он находится, и мне просто нужен файл.

import os 
import shutil
import fnmatch

root = '/Users/me/Splice/sounds/packs'
target = [
    '/Users/me/Documents/Drums/808',
    '/Users/me/Documents/Drums/snare',
    '/Users/me/Documents/Drums/kick',
    '/Users/me/Documents/Drums/rim',
    '/Users/me/Documents/Drums/percussion',
    '/Users/me/Documents/Drums/hihat',
    '/Users/me/Documents/Drums/cymbals',
    '/Users/me/Documents/Drums/clap',
]



for dirpath, dirnames, files in os.walk(root):
    for file_name in files:
        if fnmatch.fnmatch(file_name, "*808*"):
            # get the path relative to the source root and create a 
            # new one relative to the target
            path = os.path.join(target[0], os.path.relpath(dirpath, root))
            if not os.path.exists(path):
                os.makedirs(path)
            shutil.copy(os.path.join((dirpath, file_name), path)


Поэтому после выполнения этого цикла я могу поместить барабаны в соответствующие папки, однако я не уверен, как поступить, чтобы отфильтровать файлы.wav из подпапки, в которой он находится, для перемещения в целевую папку и удаления подпапок., И это была часть, о которой я думал после фильтрации файлов, но ничего не происходит:

 for f_name in os.listdir(dirpath):
                if f_name.endswith(".wav"):
                    shutil.copy(dirpath, "/Users/me/Documents")

0 ответов

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