2016-09-14 3 views
0

Im новый для python и пробовать вещи. Можно ли пройти верное дерево, ищущее определенное имя файла, после того, как этот файл удалит всю папку, был найден этот файл?Найти конкретный файл в каталоге и удалить каталог

следующие работы, но только удаляет файл, я хочу, чтобы удалить всю папку, когда addon.sxm находится

if os.path.exists(Addons): 
     for root, dirs, files in os.walk(Addons): 
      package_count = 0 
      package_count += len(files) 
       if package_count > 0: 
        for f in files: 
         if fnmatch.fnmatch(f, 'addon.sxm'): 
          try: 
           os.remove(os.path.join(root, f)) 
          except: 
           pass 
      else: 
       pass     

ответ

1

Вместо os.remove (os.path.join (корень, е)) использование shutil.rmtree (корень); удалит каталог, в котором находится файл.

import os 
import fnmatch 
import shutil 
Addons="/path/to/my/folder/" 
if os.path.exists(Addons): 
    for root, dirs, files in os.walk(Addons): 
     package_count = 0 
     package_count += len(files) 
     if package_count > 0: 
      for f in files: 
       print(f) 
       if fnmatch.fnmatch(f, 'addon.sxm'): 
        try: 
         shutil.rmtree(root); 
        except: 
         pass 
     else: 
      pass 
+0

Thx, что хорошо работает – Natrix

Смежные вопросы