Картинка блога

Не знаю, может в питоне для этого есть инструменты и проще. Тем не менее я столкнулся с такой проблемой и решил решить ее написав свой скрипт удаления. Я пока зеленый в мире питона и это мой первый делающий что-то полезное скрипт на этом языке.

К тому-же, так получилось что это еще и первая статья, открывающая рубрику Python на моем блоге! Надеюсь, будет интересно.

Скрипт удаления «*.pyc» файлов рекурсивно от текущей папки.
В двух словах — метод walk класса вызывает установленную функцию для каждого файла. У меня это функция deletePyc.

#!/usr/bin/python

import os,sys
print sys.version

def deletePyc(filename):
 if filename[-3:] == 'pyc':
 print '- ' + filename
 os.remove(filename)
#    else:
#        print '+ ' + filename

class DirWalker(object):
 """taken from http://ssscripting.wordpress.com/2009/03/03/python-recursive-directory-walker/"""

 def show(elem):
 print elem
 def walk(self,dir,meth=show):
 dir = os.path.abspath(dir)
 for file in [file for file in os.listdir(dir) if not file in [".",".."]]:
 nfile = os.path.join(dir,file)
 meth(nfile)
 if os.path.isdir(nfile):
 self.walk(nfile,meth)

a = DirWalker()
a.walk('.',deletePyc)
raw_input()

Конечно, я немного соврал, взяв код с чужого блога. Но с кем не бывает 🙂

Метки:,

3 комментария в “Рекурсивно удаляем PYC файлы.”


  1. find . -name *pyc | xargs rm

  2. предложенная в комментарии команда
    find . -name *pyc | xargs rm
    не будет работать.
    Правильно так
    find . -name '*.pyc' | xargs rm
    или так
    find . -name \*.pyc | xargs rm

  3. find -type f -iname «*.pyc» -delete