#İSTENİLEN UZANTILI DOSYALARIN KÖK ÜZERİNDE SAYIMINI YAPAR
def countfiles():
directory=input("countfiles@directory$ ")
extension=input("countfiles@extension$ ")
print("\n\t"+str(len([(file) for (root,dirs,files) in os.walk(directory) for file in files if file.endswith(extension)])),"files found",end="\n"*2)
Merhabalar, henüz yeni Python öğrenmeye başladım ve bir konuda tecrübeli arkadaşların desteğine ihtiyacım var. Bu kod bu işi yapacak en pratik kod mudur? Eğer değilse örneğini bana kılavuz olacak şekilde aktarır mısınız lütfen.
Yazılabilecek en az satırlı kod budur. Hatta input fonksiyonlarını da print içine alıp tek satıra indirebilirsiniz.
Bu şekilde kod yazmak gerçekten çok zevk veriyor. İlerlediğinizi hissediyorsunuz. Ancak üzerinden 6 ay geçtikten sonra bu kodu okumak o kadar zor oluyor ki. O yüzden pratik kelimesini bu kod için tercih etmem.
def count_files(directory, ext):
res = []
for (root,dirs,files) in os.walk(directory):
for file in files:
if file.endswith(ext):
res.append(file)
return res
Bu şekilde bir kod daha okunaklı oluyor. Elbette herhangi biri yazmış gibi göründüğü için bunu yazdığınızda aynı hazzı alamıyorsunuz.
Bu kodu filter fonksiyonunu kullanarak tekrar yazabilirsiniz. Döngülerden birinden kurtulmuş olur(?). Ancak yine bu yazdığım halini tavsiye ederim.
‘Python developerlar en uzun list comprehension yazma yarışması yapıyorlarmış’ diye bir geyik vardı bir zamanlar. O geyik gerçek olursa yazbel olarak bence sizi gönderelim oraya