#!python """ KW: list files in dir, read dir in python, listowanie katalogu, czytanie katalogu, wyświetl pliki w katalogu, czytaj pliki w katalogu. [pl] klasa przechodzi rekurencyjnie przez katalog podany w konstruktorze. Jeśli katalog nie został podany używany jest bieżacy katalog. Przy każdym napotkanym pliku wykonywana jest metoda fileOperation(self, path, f), a przy każdym katalogu dirOperation(self, path, f). Klasa może być użyta np. do wyświetlenie plików w katalogu. Zalecam rozszerzyć klasę i przeciążyć metody fileOperation(self, path, f) i dirOperation(self, path, f) jak w przykładzie poniżej. [en] see docstring """ import os class RecuFilesOperations: """ RecuFilesOperations([str path]) Walks recursively through dirs in path. When path is not given current dir is used. When file found fileOperation(str currentPath, str currentItemName) method is called. When dir found dirOperation(str currentPath, str currentItemName) method is called. """ recuDirNo = 0 recuFileNo = 0 recuLvl = 0 recuStartPath = '' def __init__(self, path="."): self.recuStartPath = path self._recuDirRead(path, 0) def _recuDirRead(self, path, lvl): self.recuLvl = lvl for f in os.listdir(path): if os.path.isdir(path + '/' + f): self.recuDirNo += 1 self.dirOperation(path, f) self._recuDirRead(path + '/' + f, lvl + 1) else: self.recuFileNo += 1 self.fileOperation(path, f) def fileOperation(self, path, f): print (self.recuLvl * " ") + f def dirOperation(self, path, f): print path + "/" + f ### e:recuFilesOperations # example # Extend RecuFilesOperations class and overload fileOperation and dirOperation methods class MyExample(RecuFilesOperations): def fileOperation(self, path, f): print "FILE FOUND! > " + f def dirOperation(self, path, f): print "DIR FOUND! > " + f x = MyExample(".")