पायथन 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')]