Python 模块之shutil模块

时间:2021-08-23 22:44:57
#拷贝文件,可指定长度,fsrc和fdst都是一个文件对象
def copyfileobj(fsrc, fdst, length=16*1024)
shutil.copyfileobj(open(
"ss1", "r"), open("ss2", "w"), length=1024)

# 拷贝文件,dst必须可写,存在则覆盖
def copyfile(src, dst, *, follow_symlinks=True)
shutil.copyfile(
"ss1", "ss2")

#拷贝文件和权限,先copyfile后copymode
def copy(src, dst, *, follow_symlinks=True)
shutil.copy(
"ss1", "ss2")

#拷贝文件和所有状态信息,如修改时间等
def copy2(src, dst, *, follow_symlinks=True)
shutil.copy2( src, dst) 

#只拷贝状态信息,包括权限,组,用户,时间等
def copystat(src, dst, *, follow_symlinks=True)
shutil.copystat(src, dst)

#只拷贝权限信息,不更改文件内容,组和用户
def copymode(src, dst, *, follow_symlinks=True)
shutil.copymode(src, dst)

#移动或重命名
def move(src, dst, copy_function=copy2)
shutil.move(src, dst)  
#移动文件或重命名

#递归的复制文件内容及状态信息
def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
ignore_dangling_symlinks
=False)
shutil.copytree(olddir, newdir, ignore
=ignore_patterns('*.pyc', 'tmp*'))
#忽略.pyc和.tmp结尾的文件

#递归删除一个目录以及目录内的所有内容
def rmtree(path, ignore_errors=False, onerror=None)
shutil.rmtree(src) 

#压缩打包
def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,
dry_run
=0, owner=None, group=None, logger=None)
base_name: 压缩打包后的文件名或者路径名
format: 压缩或者打包格式
"zip", "tar", "bztar"or "gztar"
gztar:gzip压缩的tar文件
bztar:bzip2格式的tar文件
tar:未压缩的tar文件
zip:ZIP文件
root_dir : 将哪个目录或者文件打包(也就是源文件)
shutil.make_archive(
'tarball','tar',root_dir='/root/data')