python shutil相关操作
python shutil模块常用操作
高级的 文件、文件夹、压缩包 处理模块
1.将文件内容拷贝至另一个文件中
shutil.copyfileobj(src, dist, length=16*1024),默认长度为16 * 1024,默认返回None
shutil.copyfileobj(open('test3.py', 'r'), open('test3/test2.py','w'))
2.拷贝文件
shutil.copyfile(src, dist),dist目标文件无需存在, 返回复制后的文件名称,此处为"test4.py",不拷贝权限、状态信息,只拷贝文本
shutil.copyfile("test3.py", "test4.py")
3.仅拷贝权限,内容、组、用户不变
目标文件必须存在,不拷贝内容、状态
shutil.copymode("test3.py","test4.py")
4.仅拷贝状态信息及读写权限
状态信息包括:mode bits, atime, mtime, flags;目标文件必须存在
shutil.copystat("test3.py","test4.py")
5.拷贝文件和权限
包括文件内容和文件的读写权限
shutil.copy("test3.py", "test5.py")
6.拷贝文件和状态信息
包含文件内容及状态信息:mode bits, atime, mtime, flags、读写权限
shutil.copy2("test3.py", "test6.py")
7.递归拷贝文件(从一个文件夹中拷贝到另一个文件夹)
递归拷贝文件需要目标文件夹不存在,ignore为忽略的文件或文件夹
shutil.copytree("test3","test4",ignore=shutil.ignore_patterns("*.py"))
8.递归删除文件夹
会删除全部文件及文件夹
shutil.rmtree("test4")
9.递归移动文件(相当于重命名)
shutil.move("test3","test4")
10.创建压缩包并返回文件的路径
shutil.make_archive(base_name, format, root_dir), base_name:压缩包的名称,format一般为"zip", "tar", "bztar" or "gztar",
root_dir:需要压缩的路径
shutil.make_archive("test", "zip", "test4")
11.解压缩压缩包
shutil.unpack_archive(base_name, extract_dir, format);base_name:压缩包路径;extract_dir:解压缩的路径;
format一般为"zip", "tar", "bztar" or "gztar"
shutil.unpack_archive("test.zip", "test5", "zip")
12.shutil压缩及解压缩原理
调用 ZipFile 和 TarFile 两个模块来进行的