import os.path
import sys
class DizinBilgisi:
#Sinif yapicisi
def __init__(self):
#Ekrana yazarken kullanacagimiz sayaci ilkleyelim
#Basina iki tane alt cizgi koydugumuz degiskenler
#private degisken oluyormus :?
self.__sayac = 0;
#alt dizinleri dolasma varsayilan olarak kapali
#sadece istenen dizin icerisindeki dosyalari listelesin
self.__recursive = False;
#Bu metod icerisindeki dosyalari listeleyecegimiz dizini
#ayarlamak icin kullaniliyor
def setDizin(self,_dizin):
#dolasilacak olan dizin
#bu saha da private
self.__dizin=_dizin;
#alt dizinlerin dolasilip dolasilmayacagini ayarlayan
#metod
def setRecursive(self,_recursive):
self.__recursive=_recursive;
#ekrana yazma islemini baslatmak icin kullanilan
#metod
def ekranaYaz(self,_dizin="",_recursive=""):
if(_dizin!=""):
self.__dizin=_dizin
if(_recursive!=""):
self.__recursive=_recursive
#Bu metodun amaci dizinin icerdigi dosyalarin adlarini
#ekrana yazmak
self.__diziniEkranaYaz(self.__dizin)
#private tanimlanmis ve parametre olarak
#aldigi dizin icerisindeki dosyalari
#ekrana yazan metod
def __diziniEkranaYaz(self,dizinIsmi):
#Ekrana dizin adini yazalim
print dizinIsmi
#dizin seviyesi icin sayaci arttiralim
self.__sayac+=1
#dizin icerisindeki dosya listesini alalim
dosyalar = os.listdir(dizinIsmi)
#listeyi dolasalim
for file in dosyalar:
#dosya ismini uygun sekilde ayarlamaliyiz
dosyaIsmi = dizinIsmi+"/"+file
#eger bu dosya bir dizinse
if os.path.exists(dosyaIsmi) & os.path.isdir(dosyaIsmi):
#ve alt dizinleri dolasmamiz isteniyorsa
if self.__recursive==True:
#alt dizinleri dolasalim
self.__diziniEkranaYaz(dosyaIsmi)
#bu dosya bir dosya ise
elif os.path.isfile(dosyaIsmi):
#bilgisini ekrana yazalim
self.__dosyaAdiniYaz(file)
#houston bir problemimiz var
else:
print "Dizin parametresinde hata var"
#dizin seviyesini azaltalim
self.__sayac-=1
#bu metodun amaci dosya ismini guzel bir
#sekilde ekrana yazalim
def __dosyaAdiniYaz(self,dosyaAdi):
tabs=""
#dizinin seviyesi kadar tab ekliyoruz
for i in range(self.__sayac):
tabs+="\t"
#tablarla birlikte dosya adini ekrana yaziyoruz
print tabs+dosyaAdi
#Programin calistirilma kodu
def main():
#DizinBilgisi sinifinin bir ornegini yaratalim
db = DizinBilgisi()
#girilen arguman sayisina gore islem yapacagiz
if len(sys.argv)==2:
#dizin ismi girilmis demek
db.setDizin(sys.argv[1])
elif len(sys.argv)==3:
#dizin ismi ve recursive olup olmadigi girilmis
db.setDizin(sys.argv[1])
if sys.argv[2]=='r':
db.setRecursive(True)
else:
print "Arguman olarak en azindan dizin yolunu vermeniz gerekmektedir."
print "Alt dizinlerin listelenmesi icin dizin yolundan sonra r yazmaniz yeterlidir."
sys.exit()
db.ekranaYaz()
if __name__ == "__main__":
main()
Kod Biçimlendirme için : http://formatmysourcecode.blogspot.com/
----------------
Now playing: Haggard - Chapter III: Awaking The Centuries
Hiç yorum yok:
Yorum Gönder