पायथन में फ़ोल्डर सामग्री को पुनरावर्ती रूप से पढ़ना
पायथन में, पाठ फ़ाइलों को पढ़ने के लिए निर्देशिकाओं को पुनरावर्ती रूप से पार करने का प्रयास करते समय आपको समस्याएं आ सकती हैं। एक सामान्य समस्या कोड है जो केवल एक निर्देशिका स्तर के लिए कार्य करता है।
os.walk फ़ंक्शन को समझना
पायथन में पुनरावर्ती फ़ोल्डर ट्रैवर्सल का मूल ओएस में निहित है .walk() फ़ंक्शन। यह एक निर्दिष्ट निर्देशिका और उसकी उपनिर्देशिकाओं पर पुनरावृत्त होता है, तीन मान लौटाता है: रूट, उपदिशाएं, और फ़ाइलें। निर्देशिका.
बेहतर पायथन कोड
उदाहरण कोड को एकाधिक निर्देशिका को संभालने के लिए संशोधित किया जा सकता है स्तर:आयात ओएस आयात sys walk_dir = sys.argv[1] os.walk(walk_dir) में रूट, सबडिर्स, फाइलों के लिए: उपदिर में उपदिर के लिए: # प्रक्रिया उपनिर्देशिका: उपदिर के लिए os.walk() को पुनरावर्ती रूप से कॉल करें सब_सबडिर, सब_सबफाइल्स, _ के लिए ओएस.वॉक में (ओएस.पाथ.जॉइन(रूट, सबडिर)): # उपनिर्देशिका में उपनिर्देशिकाओं और फ़ाइलों को संसाधित करें
अतिरिक्त सर्वोत्तम अभ्यासimport os
import sys
walk_dir = sys.argv[1]
for root, subdirs, files in os.walk(walk_dir):
for subdir in subdirs:
# Process subdirectory: call os.walk() recursively for subdir
for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)):
# Process subdirectories and files in subdirectory
मैन्युअल स्ट्रिंग हेरफेर के बजाय पथ संयोजन के लिए os.path.join() का उपयोग करें।के लिए os.path.abspath() का उपयोग करके स्क्रिप्ट तर्कों को निरपेक्ष पथों में परिवर्तित करने पर विचार करें स्थिरता।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3