Ben os.listdir()
çalışır gibi bir özyinesiz os.walk()
yürüyüş yapmak için bir yol arıyorum. Ama aynı şekilde os.walk()
geri dönmesi gerekiyor. Herhangi bir fikir?Non-özyinelemeli os.walk()
Önceden teşekkür ederiz.
Ben os.listdir()
çalışır gibi bir özyinesiz os.walk()
yürüyüş yapmak için bir yol arıyorum. Ama aynı şekilde os.walk()
geri dönmesi gerekiyor. Herhangi bir fikir?Non-özyinelemeli os.walk()
Önceden teşekkür ederiz.
next(os.walk(...))
Benim biraz daha parametreleştirilen çözüm bu olacaktır:
for root, dirs, files in os.walk(path):
if not recursive:
while len(dirs) > 0:
dirs.pop()
//some fency code here using generated list
Düzenleme: düzeltmeleri, eğer/sorun ise. Teşekkürler, @Dirk van Oosterbosch:
for root, dirs, filenames in os.walk(workdir):
for fileName in filenames:
print (fileName)
break #prevent decending into subfolders
Bunun nedeni (varsayılan olarak) çalışır:
for str_dirname, lst_subdirs, lst_files in os.walk(str_path):
if not bol_recursive:
while len(lst_subdirs) > 0:
lst_subdirs.pop()
Bu yalnızca ** bir ** alt dizini varsa çalışır. Birden çok alt dizin için '' yerine 'yerine len (dirs)> 0 'kullanılır. –
@DirkvanOosterbosch: ya da daha da basit: sadece "eğer özyinelemeyen: break" ilgisiz: "dirs: dirs.pop()' yerine "del dirs [:]' yi kullanabilirsiniz. – jfs
Use 'dirs.clear()' daha idiomatiktir. – ideasman42
Eh buna paralel olarak daha oldu os.walk
öncelikle dosyaları istenen klasörde listeler ve sonra alt klasörlere gider.
döngü dosya adları sonra break
ekleyin:} Kamiccolo demek istediğini
Düşünebildiğimden daha basit ... Teşekkürler! –