पायथन का उपयोग करके किसी निर्देशिका में सभी फ़ाइलों को कैसे सूचीबद्ध करें और उन्हें एक सूची में कैसे जोड़ें

पायथन का उपयोग करके किसी निर्देशिका में सभी फ़ाइलों को कैसे सूचीबद्ध करें और उन्हें एक सूची में कैसे जोड़ें
पायथन का उपयोग करके किसी निर्देशिका में सभी फ़ाइलों को कैसे सूचीबद्ध करें और उन्हें एक सूची में कैसे जोड़ें

पायथन में निर्देशिका फ़ाइल सूचीकरण

किसी निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करना पायथन प्रोग्रामिंग में एक सामान्य कार्य है, चाहे आप फ़ाइलें व्यवस्थित कर रहे हों, डेटा संसाधित कर रहे हों, या कार्यों को स्वचालित कर रहे हों। इसे आसानी से और कुशलता से पूरा करने के लिए पायथन कई तरीके प्रदान करता है।

इस लेख में, हम पायथन का उपयोग करके एक निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करने और उन्हें एक सूची में जोड़ने के विभिन्न तरीकों का पता लगाएंगे। अंत तक, आपको अपने पायथन प्रोजेक्ट्स में निर्देशिका सामग्री को प्रोग्रामेटिक रूप से प्रबंधित करने की स्पष्ट समझ होगी।

आज्ञा विवरण
os.walk(directory_path) ऊपर से नीचे या नीचे से ऊपर चलकर निर्देशिका ट्री में फ़ाइल नाम उत्पन्न करता है।
os.path.join(root, file) आवश्यक निर्देशिका विभाजकों को जोड़ते हुए, एक या अधिक पथ घटकों को समझदारी से जोड़ता है।
Path(directory_path) निर्दिष्ट निर्देशिका पथ के लिए एक पथ ऑब्जेक्ट बनाता है, फ़ाइल सिस्टम पथों को संभालने के लिए विभिन्न तरीके प्रदान करता है।
path.rglob('*') निर्देशिका में निर्दिष्ट पैटर्न से मेल खाने वाली सभी मौजूदा फ़ाइलों को पुनरावर्ती रूप से उत्पन्न करता है।
file.is_file() यदि पथ एक नियमित फ़ाइल है (निर्देशिका या सिम्लिंक नहीं) तो सत्य लौटाता है।
str(file) पथ ऑब्जेक्ट को फ़ाइल पथ के स्ट्रिंग प्रतिनिधित्व में परिवर्तित करता है।

पायथन में डायरेक्टरी लिस्टिंग स्क्रिप्ट को समझना

पहली स्क्रिप्ट का उपयोग करता है os मॉड्यूल, विशेष रूप से os.walk(directory_path) फ़ंक्शन, निर्देशिका ट्री को पार करने के लिए। यह फ़ंक्शन एक निर्देशिका ट्री में फ़ाइल नाम उत्पन्न करता है, जो शीर्ष निर्देशिका से शुरू होकर लीफ निर्देशिकाओं तक होता है। इस लूप के भीतर, हम उपयोग करते हैं os.path.join(root, file) निर्देशिका पथ और फ़ाइल नाम को सही ढंग से संयोजित करने के लिए, यह सुनिश्चित करना कि अंतिम पथ ऑपरेटिंग सिस्टम की परवाह किए बिना मान्य है। फिर सभी फ़ाइलों के पथ इसमें जोड़ दिए जाते हैं files_list सूची, जो फ़ंक्शन के अंत में लौटा दी जाती है। यह विधि बड़ी निर्देशिका संरचनाओं के लिए प्रभावी है क्योंकि यह फ़ाइलों को क्रमिक रूप से संसाधित करती है।

दूसरी लिपि का उपयोग किया जाता है pathlib लाइब्रेरी, जो फ़ाइल सिस्टम के साथ इंटरैक्ट करने के लिए एक ऑब्जेक्ट-ओरिएंटेड इंटरफ़ेस प्रदान करती है। हम एक बनाकर शुरुआत करते हैं Path दी गई निर्देशिका के लिए ऑब्जेक्ट. path.rglob('*') विधि का उपयोग दिए गए पैटर्न से मेल खाने वाली सभी फ़ाइलों को पुनरावर्ती रूप से खोजने के लिए किया जाता है। file.is_file() विधि जाँच करती है कि प्रत्येक पाया गया पथ एक नियमित फ़ाइल है या नहीं। यदि ऐसा है, तो हम इसे परिवर्तित करते हैं Path का उपयोग कर एक स्ट्रिंग पर आपत्ति str(file) और इसे इसमें जोड़ें files_list. यह दृष्टिकोण अधिक आधुनिक है और अक्सर इसकी पठनीयता और उपयोग में आसानी के लिए पसंद किया जाता है। यह विभिन्न प्रकार के पथों (जैसे सिम्लिंक) को भी अधिक खूबसूरती से संभालता है।

निर्देशिका फ़ाइलों को सूचीबद्ध करने और सूची में जोड़ने के लिए पायथन का उपयोग करना

पायथन - ओएस और ओएस.पाथ पुस्तकालयों का उपयोग करना

import os

def list_files_in_directory(directory_path):
    files_list = []
    for root, dirs, files in os.walk(directory_path):
        for file in files:
            files_list.append(os.path.join(root, file))
    return files_list

# Example usage
directory_path = '/path/to/directory'
files = list_files_in_directory(directory_path)
print(files)

एक निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करना और पायथन में एक सूची में जोड़ना

पायथन - पाथलिब लाइब्रेरी का उपयोग

from pathlib import Path

def list_files(directory_path):
    path = Path(directory_path)
    files_list = [str(file) for file in path.rglob('*') if file.is_file()]
    return files_list

# Example usage
directory_path = '/path/to/directory'
files = list_files(directory_path)
print(files)

पायथन में डायरेक्टरी फ़ाइल लिस्टिंग के लिए उन्नत तकनीकें

पहले चर्चा की गई विधियों के अलावा, निर्देशिका में फ़ाइलों को सूचीबद्ध करने के लिए एक और शक्तिशाली दृष्टिकोण का उपयोग करना शामिल है os.scandir() समारोह। यह विधि एक पुनरावर्तक लौटाती है os.DirEntry ऑब्जेक्ट, जिसमें फ़ाइलों और निर्देशिकाओं के बारे में जानकारी होती है। की तुलना में यह अधिक कुशल है os.listdir() या os.walk() क्योंकि यह एकल सिस्टम कॉल में निर्देशिका प्रविष्टियों और उनकी विशेषताओं को पुनः प्राप्त करता है। यह विशेष रूप से तब उपयोगी हो सकता है जब बड़ी निर्देशिकाओं से निपटते समय या जब आपको फ़ाइलों को उनकी विशेषताओं, जैसे आकार या संशोधन समय के आधार पर फ़िल्टर करने की आवश्यकता होती है।

एक अन्य उन्नत तकनीक का उपयोग करना शामिल है glob मॉड्यूल, जो पथनाम पैटर्न विस्तार के लिए एक फ़ंक्शन प्रदान करता है। glob.glob() फ़ंक्शन एक निर्दिष्ट पैटर्न से मेल खाने वाले पथों की एक सूची लौटाता है। पुनरावर्ती फ़ाइल सूचीकरण के लिए, glob.iglob() के साथ प्रयोग किया जा सकता है recursive=True पैरामीटर. यह विधि सरल पैटर्न मिलान के लिए अत्यधिक कुशल है और अक्सर डेटा प्रोसेसिंग पाइपलाइनों में उपयोग की जाती है जहां विशिष्ट फ़ाइल प्रकारों को संसाधित करने की आवश्यकता होती है। इसके अलावा, इन विधियों को समानांतर प्रसंस्करण पुस्तकालयों के साथ एकीकृत करना जैसे concurrent.futures मल्टी-कोर प्रोसेसर का लाभ उठाकर फ़ाइल सिस्टम संचालन को काफी तेज़ कर सकता है।

पायथन में निर्देशिका फ़ाइलों को सूचीबद्ध करने के बारे में सामान्य प्रश्न

  1. मैं किसी निर्देशिका में केवल विशिष्ट फ़ाइल प्रकारों को कैसे सूचीबद्ध कर सकता हूँ?
  2. उपयोग glob.glob('*.txt') एक विशिष्ट एक्सटेंशन के साथ फ़ाइलों का मिलान और सूची बनाने का कार्य।
  3. मैं प्रत्येक फ़ाइल को सूचीबद्ध करते समय उसका आकार कैसे जान सकता हूँ?
  4. उपयोग os.stat(file).st_size प्रत्येक फ़ाइल का आकार बाइट्स में प्राप्त करने के लिए।
  5. क्या मैं फ़ाइलों को उनकी संशोधन तिथि के अनुसार क्रमबद्ध कर सकता हूँ?
  6. हाँ, प्रयोग करें os.path.getmtime(file) संशोधन समय पुनः प्राप्त करने और तदनुसार क्रमबद्ध करने के लिए।
  7. मैं कुछ फ़ाइलों या निर्देशिकाओं को कैसे बाहर कर सकता हूँ?
  8. फ़ाइलों या निर्देशिकाओं को उनके नाम या पथ के आधार पर फ़िल्टर करने के लिए अपने लूप के भीतर शर्तों का उपयोग करें।
  9. क्या ज़िप संग्रह में फ़ाइलों को निकाले बिना उन्हें सूचीबद्ध करना संभव है?
  10. हाँ, उपयोग करें zipfile.ZipFile वर्ग और उसके namelist() ज़िप संग्रह में फ़ाइलों को सूचीबद्ध करने की विधि।
  11. क्या मैं फ़ाइलों को फ़िल्टर करने के लिए रेगुलर एक्सप्रेशन का उपयोग कर सकता हूँ?
  12. हाँ, गठबंधन करो re मॉड्यूल के साथ os.listdir() पैटर्न के आधार पर फ़ाइलों को फ़िल्टर करने के लिए।
  13. फ़ाइलों को सूचीबद्ध करते समय मैं प्रतीकात्मक लिंक कैसे संभालूँ?
  14. उपयोग os.path.islink() यह जांचने के लिए कि क्या पथ एक प्रतीकात्मक लिंक है और तदनुसार इसे संभालें।
  15. यदि मुझे किसी दूरस्थ सर्वर पर फ़ाइलें सूचीबद्ध करने की आवश्यकता हो तो क्या होगा?
  16. जैसे पुस्तकालयों का उपयोग करें paramiko दूरस्थ सर्वर पर फ़ाइलों को सूचीबद्ध करने के लिए SSH और SFTP के लिए।
  17. मैं किसी निर्देशिका में फ़ाइलों की संख्या कैसे गिन सकता हूँ?
  18. उपयोग len(os.listdir(directory_path)) किसी निर्देशिका में फ़ाइलों की संख्या गिनने के लिए।

रैपिंग अप: पायथन में कुशल फ़ाइल सूचीकरण

अंत में, पायथन एक निर्देशिका में फ़ाइलों को सूचीबद्ध करने और उन्हें एक सूची में जोड़ने के लिए कई मजबूत तरीके प्रदान करता है। ओएस मॉड्यूल व्यापक निर्देशिका ट्रैवर्सल के लिए एक बहुमुखी विकल्प है, जबकि पाथलिब लाइब्रेरी एक ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण प्रदान करता है जो कोड पठनीयता और रखरखाव को बढ़ाता है। इसके अतिरिक्त, ग्लोब मॉड्यूल पैटर्न मिलान में उत्कृष्टता प्राप्त करता है और फ़ाइल खोज कार्यों को सरल बनाता है। इन उपकरणों को समझकर और उपयोग करके, डेवलपर्स अपने पायथन प्रोजेक्ट्स में निर्देशिका सामग्री को कुशलतापूर्वक प्रबंधित और संसाधित कर सकते हैं।