shutil是对OS中文件操作的补充:移动、复制、打包、压缩、解压。
1.copy文件内容到另一个文件,可以copy指定大小的内容。
shutil.copyfileobj(fsrc, fdst[, length=16*1024])
#注意!fsrc, fdst都是文件对象,需要打开后才能进行复制
importshutil
f1= open('name', 'r')
f2= open('name_copy', 'w+')
shutil.copyfileobj(f1, f2, length=16*1024)
2.copyfileobj文件复制需要用open函数打开文件;copyfile不需要。
shutil.copyfile(src, dst)
#一句话实现复制文件内容
shutil.copyfile('name', 'name_copy_2')
3.仅copy权限,不更改文件内容、组和用户。
shutil.copymode(src, dst)
#test1,test2文件存在,执行copymode不会出错
>>> importshutil
>>> shutil.copymode('test1', 'test2')
#目标文件不存在时会报错,此处test3文件不存在
>>> shutil.copymode('test1', 'test3')
4.复制所有的状态信息,包括权限,组,用户,时间等。
shutil.copystat(src,dst)
5.复制文件的内容以及权限,先copyfile后copymode。
shutil.copy(src,dst)
6.复制文件的内容以及文件的所有状态信息。先copyfile后copystat。
shutil.copy2(src,dst)
7.递归的复制文件内容及状态信息。
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,ignore_dangling_symlinks=False)
8.递归地删除文件。
shutil.rmtree(path, ignore_errors=False, οnerrοr=None)
9.递归的移动文件。
shutil.move(src, dst)
10.压缩打包。
make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)