पायथन की स्टैंडर्ड लाइब्रेरी के shutil मॉड्यूल में फ़ाइलों और डायरेक्ट्रीज़ पर हाई लेवल ऑपरेशन्स के लिए कई फ़ंक्शन्स परिभाषित हैं।
copy()
यह फ़ंक्शन किसी फ़ाइल को उसी या अन्य डायरेक्टरी में निर्दिष्ट फ़ाइल में कॉपी करता है। फ़ंक्शन का पहला पैरामीटर मौजूदा फ़ाइल का स्ट्रिंग रिप्रेजेंटेशन है। दूसरा तर्क या तो परिणामी फ़ाइल का नाम है या डायरेक्टरी। यदि यह डायरेक्टरी है, तो फ़ाइल उसी नाम से इसमें कॉपी होती है। मूल फ़ाइल का मेटाडेटा बनाए नहीं रखा जाता।
>>> import shutil
>>> shutil.copy("hello.py", "newdir/")
'newdir/hello.py'
copy2()
यह फ़ंक्शन copy() फ़ंक्शन के समान है सिवाय इसके कि यह सोर्स फ़ाइल का मेटाडेटा बरकरार रखता है। उदाहरण के लिए परिणामी फ़ाइल की डेट मॉडिफाइड प्रॉपर्टी मूल फ़ाइल के समान होगी।
>>> shutil.copy2('person.py', 'newdir/')
'newdir/person.py'
copyfile()
इस फ़ंक्शन के दो स्ट्रिंग तर्क फ़ाइल नामों को दर्शाते हैं। इसका मतलब है मूल फ़ाइल को उसी डायरेक्टरी में निर्दिष्ट नाम से कॉपी किया जाता है।
>>> shutil.copyfile('start.py', 'end.py')
'end.py'
copyfileobj()
इस फ़ंक्शन के पैरामीटर्स फ़ाइल ऑब्जेक्ट्स हैं न कि फ़ाइलों को दर्शाने वाले स्ट्रिंग्स। फ़ाइल ऑब्जेक्ट्स open() फ़ंक्शन द्वारा प्राप्त किए जाते हैं। मूल फ़ाइल में रीड परमिशन होनी चाहिए और परिणामी फ़ाइल को राइट परमिशन के साथ खोला जाना चाहिए।
>>> f1 = open('hello.py', 'r')
>>> f2 = open('python.py', 'w')
>>> shutil.copyfileobj(f1, f2)
move()
यह फ़ंक्शन फ़ाइलों और डायरेक्ट्रीज़ को एक डायरेक्टरी से दूसरी में रिकर्सिवली मूव करता है।
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'
copytree()
यह फ़ंक्शन एक डायरेक्टरी में फ़ाइलों और सबडायरेक्ट्रीज़ को दूसरी डायरेक्टरी में रिकर्सिवली कॉपी करता है। दोनों पैरामीटर्स के नाम स्ट्रिंग होने चाहिए। दूसरे पैरामीटर के नाम की डायरेक्टरी पहले से मौजूद नहीं होनी चाहिए। अलग-अलग फ़ाइलों को कॉपी करने के लिए आंतरिक रूप से copy2() फ़ंक्शन उपयोग किया जाता है।
>>> shutil.copytree('dir1', 'dir2')
'dir2'
rmtree()
यह फ़ंक्शन निर्दिष्ट डायरेक्टरी में फ़ाइलों और सबडायरेक्ट्रीज़ को हटाता है।
>>> shutil.rmtree('dir2')
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'
disk_usage()
यह फ़ंक्शन दी गई डायरेक्टरी के उपयोग के आंकड़े प्राप्त करता है।
>>> shutil.disk_usage('c:\\python36\\dir1')
usage(total=245681352704, used=84932993024, free=160748359680)
which()
यह फ़ंक्शन एक्ज़ीक्यूटेबल का पथ लौटाता है।
>>> shutil.which('calc')
'C:\\WINDOWS\\system32\\calc.EXE'
make_archive()
यह फ़ंक्शन रूट डायरेक्टरी में फ़ाइलों का आर्काइव (zip या tar) बनाता है।
>>> root_dir = 'newdir'
>>> shutil.make_archive("newdirarch", "zip", root_dir)
'C:\\python36\\newdirarch.zip'
get_archive_formats()
यह फ़ंक्शन सभी समर्थित आर्काइव फॉर्मेट्स की सूची देता है।
>>> shutil.get_archive_formats()
[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]
unpack_archive()
यह फ़ंक्शन दिए गए आर्काइव में फ़ाइलों को निकालता है। दूसरा पैरामीटर वह डायरेक्टरी है जिसमें फ़ाइलों को निकाला जाना है। यदि नहीं दिया गया, तो अनपैकिंग करंट डायरेक्टरी में की जाती है।
>>> shutil.unpack_archive('newdirarch.zip', 'newdir')