Удалите файлы указанных типов, если в папке нет других типов файлов. - PullRequest
0 голосов
/ 09 октября 2011

Я хочу удалить определенные файлы типа [cue, jpg, png, m3u и т. ] тип. У меня уже есть функция, которая может доставить мне все файлы типа [cue, jpg, png, m3u и т. выше. Для примера: Файл q.jpg находится в папке сам по себе. После завершения myfunc () он удаляется.

РЕДАКТИРОВАТЬ Извините за неясность. Позвольте мне привести лучший пример: У нас есть две папки, Альфа и Бета в папке Гамма . В Alpha есть три файла: 1.mp3, 2.mp3, folder.jpg . В Beta есть один файл cover.jpg . После завершения myfunc(), 1.mp3, 2.mp3, folder.jpg не следует трогать, а cover.jpg следует удалить.

1 Ответ

1 голос
/ 09 октября 2011

Похоже, у вас есть два шага:

1) Получив список расширений, получите список всех файлов в папке, соответствующей этому расширению.

2) Если все файлы в вашем каталоге имеют расширение, соответствующее вашему списку, удалите их

Обратите внимание, что здесь не содержится никакой информации о том, как пройти через структуру каталогов или какие каталоги тестировать ... в примере кода есть один каталог, жестко запрограммированный.

import os       

dir = "myDirectory" 
extList = ['ext1', 'ext2', 'ext3']
allfiles = os.listdir(dir) # all files in that directory

myfiles = [] # will be appended to to only contain files with extensiosn matching extlist
for file in allfiles:
    parts = file.split('.') # split the filename based on .
    if parts[-1] in extensionlist:
        myfiles.append(file) 

if len(myfiles) == len(allfiles):
    for file in myfiles:
        path = "%s/%s" % (dir, file)
        os.remove(path)
        os.remove(file)
...