[python库]标准库--shutil

时间:2022-05-11 03:45:56

shutil

shutil.move(src,dst)

shutil.move('tmp/20180128/new','tmp/20180128/test')   # 移动文件, 重命名等
shutil.copytree(src, dst, symlinks=False, ignore=None)

shutil.copytree("b","c")    # 递归复制。复制一个文件夹及其内容到另一个文件夹,另一个文件夹已存在时报错
#(复制一个文件夹路径,把左边的文件夹路径替换为右边的,而不是作为右边的子文件夹)
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.py'))
#复制过程中跳过后缀名为参数名的文件

shutil.rmtree(path, ignore_errors=False, onerror=None)

shutil.rmtree('tmp/a')   # 递归删除目录树.删除一个文件夹及其内容(文件夹不存在报错)
shutil.get_archive_formats()
shutil.get_archive_formats()    # 返回支持的 压缩格式列表, 如 [(name,desc),('tar','uncompressed tar file')],
shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)
shutil.make_archive('tmp/a/new2','zip',root_dir='/tmp/a')   # 创建压缩文件,
base_name : 压缩包的文件名, 也可以使压缩包的路径.
format : 压缩种类
root_dir : 要压缩的文件夹路径, 默认当前目录
owner : 用户, 默认当前用户
group : 组, 默然当前组
shutil.copy(src, dst)
shutil.copy("a.txt","d.txt")   # 复制文件及权限,文件已存在则覆盖
shutil.copyfileobj(fsrc, fdst, length=16384)
shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))
# 将文件内容拷贝到另一个文件
shutil.copyfile(src, dst)
shutil.copyfile('f1.log', 'f2.log')  # 拷贝文件
shutil.copymode(src, dst)
shutil.copymode('f1.log', 'f2.log')     # 仅拷贝权限,内容,用户,组不变
shutil.copystat(src, dst)
shutil.copystat('f1.log', 'f2.log')     # 仅拷贝状态信息
shutil.copy2(src, dst)

shutil.copy2('f1.log', 'f2.log')     # 拷贝文件和状态信息