পাইথনের স্ট্যান্ডার্ড লাইব্রেরির 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')