Python Academy · पाठ

फ़ाइल संचालन के लिए shutil

फ़ाइलों की प्रतिलिपि बनाएँ, स्थानांतरित करें और संग्रहित करें

पाठ 4, कुल 4 में से13 चरण

फ़ाइल संचालन के लिए shutil, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

shutil क्या है?

shutil (शेल उपयोगिताएँ) मॉड्यूल उच्च-स्तरीय फ़ाइल कार्य उपलब्ध कराता है: फ़ाइलों की प्रतिलिपि बनाना, उन्हें स्थानांतरित करना, निर्देशिका-वृक्ष हटाना और संग्रह बनाना। यह रोज़मर्रा के कार्यों के लिए os पर आधारित है।

import shutil, os

os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/a.txt', 'w') as f:
    f.write('hello')
print('created a.txt')

फ़ाइल की प्रतिलिपि बनाना

shutil.copy(src, dst) किसी फ़ाइल की सामग्री और अनुमति-बिट्स को नए स्थान पर कॉपी करता है।

import shutil, os

os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/src.txt', 'w') as f:
    f.write('data')
shutil.copy('/tmp/shutil_demo/src.txt', '/tmp/shutil_demo/copy.txt')
print(os.path.exists('/tmp/shutil_demo/copy.txt'))

copy बनाम copy2

shutil.copy2, copy की तरह काम करता है, लेकिन समय-चिह्न जैसी मेटाडेटा जानकारी भी सुरक्षित रखता है। जब संशोधन का समय महत्वपूर्ण हो, तब इसका उपयोग करें।

import shutil, os

os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/m.txt', 'w') as f:
    f.write('x')
shutil.copy2('/tmp/shutil_demo/m.txt', '/tmp/shutil_demo/m2.txt')
print('copied with metadata')

पूरे निर्देशिका-वृक्ष की प्रतिलिपि बनाना

shutil.copytree(src, dst) पूरी निर्देशिका की पुनरावर्ती रूप से प्रतिलिपि बनाता है। गंतव्य पहले से मौजूद नहीं होना चाहिए (जब तक कि आप dirs_exist_ok=True न दें)।

import shutil, os

os.makedirs('/tmp/tree_src/sub', exist_ok=True)
with open('/tmp/tree_src/sub/f.txt', 'w') as f:
    f.write('hi')
shutil.rmtree('/tmp/tree_dst', ignore_errors=True)
shutil.copytree('/tmp/tree_src', '/tmp/tree_dst')
print(os.path.exists('/tmp/tree_dst/sub/f.txt'))

फ़ाइलों और फ़ोल्डरों को स्थानांतरित करना

shutil.move(src, dst) किसी फ़ाइल या निर्देशिका को स्थानांतरित करता है (या उसका नाम बदलता है)। यह उन फ़ाइल सिस्टमों के बीच भी काम करता है जहाँ os.rename विफल हो जाता।

import shutil, os

os.makedirs('/tmp/move_demo', exist_ok=True)
with open('/tmp/move_demo/old.txt', 'w') as f:
    f.write('move me')
shutil.move('/tmp/move_demo/old.txt', '/tmp/move_demo/new.txt')
print(os.path.exists('/tmp/move_demo/new.txt'))

निर्देशिका-वृक्ष हटाना

shutil.rmtree(path) किसी निर्देशिका और उसके अंदर की हर चीज़ को हटा देता है। इसका सावधानी से उपयोग करें; इसे वापस लेने का कोई विकल्प नहीं है।

import shutil, os

os.makedirs('/tmp/to_delete/inner', exist_ok=True)
shutil.rmtree('/tmp/to_delete')
print('exists after rmtree:', os.path.exists('/tmp/to_delete'))

ignore_errors और सुरक्षा

rmtree को ignore_errors=True देने पर पथ मौजूद न होने की स्थिति में प्रोग्राम रुकता नहीं है। नई शुरुआत से पहले सफ़ाई करने के लिए यह उपयोगी है।

import shutil

shutil.rmtree('/tmp/never_existed', ignore_errors=True)
print('no error even though path was absent')

संग्रह बनाना

shutil.make_archive(base_name, format, root_dir) एक ही कॉल में किसी निर्देशिका को zip या tar फ़ाइल में पैक कर देता है।

import shutil, os

os.makedirs('/tmp/arch_src', exist_ok=True)
with open('/tmp/arch_src/data.txt', 'w') as f:
    f.write('archive me')
path = shutil.make_archive('/tmp/my_archive', 'zip', '/tmp/arch_src')
print('created', os.path.basename(path))

संग्रह निकालना

shutil.unpack_archive(filename, extract_dir) इस प्रक्रिया को उलट देता है और zip या tar को किसी फ़ोल्डर में खोल देता है।

import shutil, os

shutil.make_archive('/tmp/box', 'zip', '/tmp/arch_src')
shutil.unpack_archive('/tmp/box.zip', '/tmp/unpacked')
print(os.listdir('/tmp/unpacked'))

निष्पादन योग्य प्रोग्राम ढूँढना

shutil.which(name) सिस्टम के PATH में किसी प्रोग्राम का स्थान ढूँढता है, ठीक शेल के which आदेश की तरह। यह पूरा पथ या कोई मान नहीं लौटाता है।

import shutil

print(shutil.which('python3'))
print(shutil.which('definitely_not_a_real_program'))

डिस्क का उपयोग

shutil.disk_usage(path) उस पथ वाली फ़ाइल प्रणाली के कुल, उपयोग किए गए और खाली बाइट्स की जानकारी देता है।

import shutil

usage = shutil.disk_usage('/')
print('total GB:', round(usage.total / 1e9, 1))
print('free GB:', round(usage.free / 1e9, 1))

त्वरित जाँच

shutil की अपनी समझ जाँचें।

पुनरावलोकन

आपने फ़ाइल कार्यों के लिए shutil सीखा:

  • copy/copy2 फ़ाइलों की प्रतिलिपि बनाते हैं; copytree पूरे निर्देशिका-वृक्ष की प्रतिलिपि बनाता है।
  • move नाम बदलता या स्थानांतरित करता है; rmtree निर्देशिका-वृक्ष हटाता है।
  • make_archive/unpack_archive zip और tar को सँभालते हैं।
  • which और disk_usage सिस्टम की जानकारी प्राप्त करते हैं।

अगला पाठ्यक्रम: argparse से कमांड-लाइन उपकरण बनाना।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “फ़ाइल संचालन के लिए shutil” पाठ निःशुल्क है?

हाँ—“फ़ाइल संचालन के लिए shutil” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“फ़ाइल संचालन के लिए shutil” में मैं क्या सीखूँगा?

फ़ाइलों की प्रतिलिपि बनाएँ, स्थानांतरित करें और संग्रहित करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“फ़ाइल संचालन के लिए shutil” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. subprocess से कमांड चलाना
  2. आउटपुट कैप्चर करना
  3. पर्यावरण और os मॉड्यूल
  4. फ़ाइल संचालन के लिए shutil
← Python Academy पर वापस जाएँ