Python में फ़ाइल सिस्टम के साथ काम करने की मूल बातें
फ़ाइल सिस्टम के साथ काम करना Python डेवलपमेंट में सबसे आम कार्यों में से एक है। इस प्रक्रिया में फ़ाइलों को बनाना, हटाना, कॉपी करना, स्थानांतरित करना, नाम बदलना, साथ ही डायरेक्ट्री बनाना और उनके अस्तित्व की जाँच करना शामिल है। फ़ाइल ऑपरेशन प्रक्रिया ऑटोमेशन, वेब डेवलपमेंट, डेटा विश्लेषण, कॉन्फ़िगरेशन प्रबंधन और एप्लिकेशन डिप्लॉयमेंट की नींव बनाते हैं।
Python फ़ाइल सिस्टम के साथ कुशलतापूर्वक काम करने के लिए अंतर्निहित लाइब्रेरी का एक व्यापक सेट प्रदान करता है। मुख्य टूल os, shutil और pathlib मॉड्यूल हैं। ये लाइब्रेरी बुनियादी ऑपरेशन से लेकर उन्नत कार्यों तक, लगभग सभी संभावित उपयोग परिदृश्यों को कवर करती हैं।
Python में फ़ाइलों को स्थानांतरित करना
shutil.move() फ़ंक्शन का उपयोग
जब किसी फ़ाइल को एक डायरेक्ट्री से दूसरी में स्थानांतरित करना आवश्यक हो, तो सबसे सरल और प्रभावी तरीका shutil.move() फ़ंक्शन का उपयोग करना है। यह फ़ंक्शन Linux और Unix ऑपरेटिंग सिस्टम में mv कमांड के समान काम करता है।
import shutil
shutil.move('source/file.txt', 'destination/file.txt')
shutil.move() फ़ंक्शन स्वचालित रूप से अलग-अलग फ़ाइलों और पूरी डायरेक्ट्री दोनों को संभालता है। स्थानांतरित करते समय फ़ाइल का नाम एक साथ बदला जा सकता है। यह ध्यान रखना महत्वपूर्ण है कि यदि लक्ष्य फ़ोल्डर में उसी नाम की कोई फ़ाइल पहले से मौजूद है, तो वह बिना किसी चेतावनी के ओवरराइट हो जाएगी।
स्थानांतरित करते समय डायरेक्ट्री बनाना
फ़ाइलों को स्थानांतरित करते समय अक्सर नई डायरेक्ट्री बनाने की आवश्यकता होती है। निम्नलिखित तरीका इस समस्या को हल करता है:
import os
import shutil
src = 'data/report.txt'
dst_dir = 'archive'
os.makedirs(dst_dir, exist_ok=True)
shutil.move(src, os.path.join(dst_dir, 'report.txt'))
exist_ok=True पैरामीटर के साथ os.makedirs() फ़ंक्शन, यदि वे मौजूद नहीं हैं तो डायरेक्ट्री की एक श्रृंखला बनाता है और यदि डायरेक्ट्री पहले से मौजूद हैं तो कोई त्रुटि नहीं देता है।
डायरेक्ट्री को स्थानांतरित करना
shutil.move() फ़ंक्शन पूरी डायरेक्ट्री को स्थानांतरित करने का भी समर्थन करता है:
shutil.move('old_folder', 'new_location/old_folder')
फ़ाइलों की प्रतिलिपि बनाना और लिंक बनाना
फ़ाइलों की बुनियादी प्रतिलिपि
फ़ाइलों की प्रतिलिपि बनाने के लिए, Python विभिन्न कार्यक्षमताओं वाले कई फ़ंक्शन प्रदान करता है:
import shutil
# फ़ाइल की सामग्री की प्रतिलिपि बनाना
shutil.copy('file.txt', 'backup/file.txt')
copy() फ़ंक्शन केवल फ़ाइल की सामग्री की प्रतिलिपि बनाता है, लेकिन मेटाडेटा को सहेजता नहीं है। सभी फ़ाइल विशेषताओं को बनाए रखते हुए पूर्ण प्रतिलिपि के लिए, copy2() का उपयोग किया जाता है:
shutil.copy2('file.txt', 'backup/file.txt')
डायरेक्ट्री की प्रतिलिपि बनाना
सभी सामग्री के साथ पूरी डायरेक्ट्री की प्रतिलिपि बनाने के लिए, copytree() फ़ंक्शन का उपयोग किया जाता है:
shutil.copytree('project', 'project_backup')
हार्ड लिंक बनाना
हार्ड लिंक फ़ाइल सिस्टम में मौजूदा फ़ाइल के लिए एक अतिरिक्त नाम है:
import os
os.link('file.txt', 'linked_file.txt')
हार्ड लिंक का मतलब है कि एक भौतिक फ़ाइल कई अलग-अलग पथों पर उपलब्ध है। फ़ाइल की सामग्री में परिवर्तन सभी लिंक में दिखाई देते हैं। हार्ड लिंक की संख्या os.stat().st_nlink का उपयोग करके जाँची जा सकती है।
डायरेक्ट्री प्रबंधन
डायरेक्ट्री बनाना
Python डायरेक्ट्री बनाने के लिए दो मुख्य फ़ंक्शन प्रदान करता है:
import os
# एक डायरेक्ट्री बनाना
os.mkdir('new_folder')
# नेस्टेड डायरेक्ट्री संरचना बनाना
os.makedirs('parent/child/grandchild', exist_ok=True)
mkdir() फ़ंक्शन केवल एक डायरेक्ट्री बनाता है और यदि डायरेक्ट्री पहले से मौजूद है तो FileExistsError अपवाद उत्पन्न करता है।