, если у вас много файлов и папок, используйте for
-loops для работы с ними.
Вам нужно будет разделить имя файла на слова - split(' ')
- и использовать for
-l oop для проверки каждого слова отдельно в имени папки и подсчета слов, которые находятся в имени папки. Когда количество равно 2 или больше, переместите файл.
Более или менее:
all_filenames = [
'Game of Throne part II.mp4',
'other file.mp4',
]
all_folders = [
'Game Throne',
'Other Files'
]
for filename in all_filenames:
words = filename.lower().split(' ')
moved = False
for folder in all_folders:
count = 0
for word in words:
if word in folder.lower():
count += 1
if count >= 2:
print('count:', count, '|', filename, '->', folder)
# TODO: move file
moved = True
break
if not moved:
print('not found folder for:', filename)
# TODO: you could move file to `Other Files`
EDIT: версия, которая получает все совпадающие папки и просит пользователя выберите правильную папку.
Я не тестировал. Для проверки правильности выбора пользователем номера может потребоваться дополнительный код. И, в конце концов, добавить возможность пропустить его и не перемещать файл.
all_filenames = [
'Game of Throne part II.mp4',
'other file.mp4',
]
all_folders = [
'Game Throne',
'Other Files'
]
for filename in all_filenames:
words = filename.lower().split(' ')
matching = []
for folder in all_folders:
count = 0
for word in words:
if word in folder.lower():
count += 1
if count >= 2:
print('count:', count, '|', filename, '->', folder)
matching.append(folder)
#if not matching:
if len(matching) == 0:
print('not found folder for:', filename)
# TODO: you could move file to `Other Files`
elif len(matching) == 1:
print('move:', filename, '->', matching[0])
# TODO: move file to folder matching[0]
else:
for number, item in enumerate(matching):
print(number, item)
answer = int(input('choose number:'))
print('move:', filename, '->', matching[answer])
# TODO: move file to folder matching[answer]