Как исключить подкаталог при извлечении файла из него в родительский каталог в 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")