Computer >> Máy Tính >  >> Lập trình >> Python

Hoạt động tệp cấp cao bằng Python (shutil)

Một số hàm cho các hoạt động ở cấp độ hgh trên tệp và thư mục đã được xác định trong mô-đun shutil của thư viện tiêu chuẩn của Python.

copy ()

Chức năng này sao chép một tệp vào một tệp được chỉ định trong cùng hoặc thư mục khác. Tham số đầu tiên của hàm là biểu diễn chuỗi của tệp hiện có. Đối số thứ hai là tên của tệp hoặc thư mục kết quả. Nếu đó là một thư mục, thì tệp sẽ được đặt cùng tên với nó. Siêu dữ liệu của tệp 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ự như hàm copy () ngoại trừ việc nó giữ lại siêu dữ liệu của tệp nguồn. Ví dụ:thuộc tính ngày sửa đổi của tệp kết quả sẽ giống với tệp 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 tệp, có nghĩa là tệp gốc được sao chép theo tên đã chỉ định trong cùng một thư mục.

>>> shutil.copyfile('start.py', 'end.py')
'end.py'

copyfileobj ()

Các tham số của hàm này là các đối tượng tệp chứ không phải là các chuỗi đại diện cho tệp. Các đối tượng tệp được lấy bởi hàm open (). Tệp gốc phải có quyền đọc và tệp kết quả phải được mở với quyền ghi.

>>> f1=open('hello.py','r')
>>> f2=open('python.py','w')
>>> shutil.copyfileobj('f1', 'f2')
>>> shutil.copyfileobj(f1, f2)

move ()

Hàm này di chuyển đệ quy tệp 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 tệp và thư mục con trong một thư mục này sang một thư mục khác. Tên của hai tham số phải là chuỗi. Thư mục tên của thông số thứ hai không được tồn tại trước đó. Để sao chép các tệp riêng lẻ, hàm copy2 () được sử dụng nội bộ.

>>> shutil.copytree('dir1','dir2')
'dir2'

rmtree ()

Hàm này loại bỏ các tệp và thư mục con trong thư mục được chỉ định.

>>> shutil.rmtree('dir2')
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'

disk_usage ()

Hàm này truy xuất thống kê sử dụng của thư mục đã cho.

>>> shutil.disk_usage('c:\\python36\\dir1')
usage(total=245681352704, used=84932993024, free=160748359680)

which ()

Hàm này trả về đường dẫn đến tệp thực thi.

>>> shutil.which('calc')
'C:\\WINDOWS\\system32\\calc.EXE'

make_archive ()

Chức năng này tạo một kho lưu trữ (zip hoặc tar) các tệp trong thư mục gốc.

>>> root_dir='newdir'
>>> shutil.make_archive("newdirarch","zip",root_dir)
'C:\\python36\\newdirarch.zip'

get_archive_formats ()

Chức năng này cung cấp tất cả các định dạng 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 ()

Chức năng này trích xuất các tệp trong kho lưu trữ nhất định. Tham số thứ hai là thư mục chứa tệp sẽ được trích xuất. Nếu không được cung cấp, việc giải nén sẽ được thực hiện trong thư mục hiện tại.

>>> shutil.unpack_archive('newdirarch.zip','newdir')