سؤال

أنا أبحث عن وسيلة للقيام بعدم وجود 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()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top