OS.Walk غير المتوحش ()
-
29-09-2019 - |
سؤال
أنا أبحث عن وسيلة للقيام بعدم وجود os.walk()
المشي ، مثل os.listdir()
يعمل. لكني بحاجة إلى العودة بنفس الطريقة os.walk()
عائدات. اي فكرة؟
شكرا لكم مقدما.
المحلول
next(os.walk(...))
نصائح أخرى
أضف break
بعد أسماء الملفات للحلقة:
for root, dirs, filenames in os.walk(workdir):
for fileName in filenames:
print (fileName)
break #prevent descending into subfolders
هذا يعمل بسبب (افتراضيًا) os.walk
أولاً يسرد الملفات في المجلد المطلوب ثم يذهب إلى المجلدات الفرعية.
إن حلتي الأكثر حدوثًا قليلاً سيكون هذا:
for root, dirs, files in os.walk(path):
if not recursive:
while len(dirs) > 0:
dirs.pop()
//some fency code here using generated list
تحرير: إصلاحات ، إذا/أثناء الإصدار. شكرًا، dirk van oosterbosch :}
حسنًا ، ما يعنيه Kamiccolo كان أكثر تمشيا مع هذا:
for str_dirname, lst_subdirs, lst_files in os.walk(str_path):
if not bol_recursive:
while len(lst_subdirs) > 0:
lst_subdirs.pop()
لا تنتمي إلى StackOverflow