Một số hàm cho các thao tác cấp cao trên file và thư mục đã được định nghĩa trong mô-đun shutil của thư viện chuẩn Python.
copy()
Hàm này sao chép một file đến file được chỉ định trong cùng hoặc thư mục khác. Tham số đầu tiên cho hàm là biểu diễn chuỗi của file hiện có. Tham số thứ hai là tên file kết quả hoặc thư mục. Nếu nó là thư mục, file được sao chép vào đó với cùng tên. Metadata của file gốc không được duy trì.
>>> import shutil
>>> shutil.copy("hello.py", "newdir/")
'newdir/hello.py'copy2()
Hàm này tương tự hàm copy() ngoại trừ việc nó giữ lại metadata của file nguồn. Ví dụ thuộc tính ngày sửa đổi của file kết quả sẽ giống file gốc.
>>> shutil.copy2('person.py', 'newdir/')
'newdir/person.py'copyfile()
Hai đối số chuỗi của hàm này đại diện cho tên file. Nghĩa là file gốc được sao chép bằng tên được chỉ định trong cùng thư mục.
>>> shutil.copyfile('start.py', 'end.py')
'end.py'copyfileobj()
Tham số của hàm này là đối tượng file thay vì chuỗi đại diện cho file. Các đối tượng file được lấy bởi hàm open(). File gốc nên có quyền đọc và file kết quả nên được mở với quyền ghi.
>>> f1 = open('hello.py', 'r')
>>> f2 = open('python.py', 'w')
>>> shutil.copyfileobj(f1, f2)move()
Hàm này di chuyển đệ quy file và thư mục từ thư mục này sang thư mục khác.
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'copytree()
Hàm này sao chép đệ quy file và thư mục con trong một thư mục sang thư mục khác. Tên hai tham số phải là chuỗi. Thư mục của tên tham số thứ hai không nên tồn tại trước đó. Để sao chép file riêng lẻ, hàm copy2() được dùng nội bộ.
>>> shutil.copytree('dir1', 'dir2')
'dir2'rmtree()
Hàm này xóa file và thư mục con trong thư mục được chỉ định.
>>> shutil.rmtree('dir2')disk_usage()
Hàm này truy xuất thống kê sử dụng của thư mục cho trước.
>>> shutil.disk_usage('c:\\python36\\dir1')
usage(total=245681352704, used=84932993024, free=160748359680)which()
Hàm này trả về đường dẫn đến một file thực thi.
>>> shutil.which('calc')
'C:\\WINDOWS\\system32\\calc.EXE'make_archive()
Hàm này xây dựng kho lưu trữ (zip hoặc tar) của các file trong thư mục gốc.
>>> root_dir = 'newdir'
>>> shutil.make_archive("newdirarch", "zip", root_dir)
'C:\\python36\\newdirarch.zip'get_archive_formats()
Hàm này cho danh sách tất cả định dạng kho lưu trữ được hỗ trợ.
>>> 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()
Hàm này trích xuất file trong kho lưu trữ cho trước. Tham số thứ hai là thư mục nơi file được trích xuất. Nếu không cho, giải nén được thực hiện trong thư mục hiện tại.
>>> shutil.unpack_archive('newdirarch.zip', 'newdir')