পাইথন 3.5 এবং নতুনতে নতুন পুনরাবিপন্ন **/কার্যকারিতা ব্যবহার করুন :
configfiles = glob.glob('C:/Users/sam/Desktop/file1/**/*.txt', recursive=True)
কখন recursiveসেট করা হয়, **তারপরে একটি পাথ বিভাজক 0 বা আরও সাব-ডাইরেক্টরিয়ের সাথে মেলে।
পূর্ববর্তী পাইথন সংস্করণগুলিতে glob.glob()সাব ডাইরেক্টরিগুলিতে পুনরাবৃত্তভাবে ফাইল তালিকাবদ্ধ করতে পারে না।
os.walk()সেক্ষেত্রে আমি এর fnmatch.filter()পরিবর্তে একত্রিত ব্যবহার করব :
import os
import fnmatch
path = 'C:/Users/sam/Desktop/file1'
configfiles = [os.path.join(dirpath, f)
for dirpath, dirnames, files in os.walk(path)
for f in fnmatch.filter(files, '*.txt')]
এটি আপনার ডিরেক্টরিগুলি পুনরাবৃত্তভাবে চলবে এবং সমস্ত পরম পথের নামগুলি মেলানো .txtফাইলগুলিতে ফিরে আসবে । এই নির্দিষ্ট ক্ষেত্রে fnmatch.filter()ওভারকিল হতে পারে, আপনি একটি .endswith()পরীক্ষাও ব্যবহার করতে পারেন :
import os
path = 'C:/Users/sam/Desktop/file1'
configfiles = [os.path.join(dirpath, f)
for dirpath, dirnames, files in os.walk(path)
for f in files if f.endswith('.txt')]