import shutil
#shutil 是高级的文件、文件夹、压缩包处理模块。
#将文件old1.txt内容拷贝到文件new1.txt中
shutil.copyfileobj(open('old1.txt','r'),open('new1.txt','w'))
#将old1.txt复制一份为new2.txt
shutil.copyfile('old1.txt','new2.txt')
#仅拷贝权限,内容、组、用户均不变
shutil.copymode('old1.txt','new2.txt')
#仅拷贝状态信息,如mode bits, atime, mtime, flags
shutil.copystat('old1.txt','new2.txt')
#拷贝文件和权限
shutil.copy('old1.txt','new2.txt')
#拷贝文件和状态信息
shutil.copy2('old1.txt','new1.txt')
#拷贝目录
shutil.copytree(r'c:\a',r'd:\b') #将目录a复制到d盘并重命名为b
shutil.copytree(r'c:\a',r'd:\a') #将目录a复制到d盘
shutil.copytree(r'c:\test01',r'c:\test02',symlinks=True, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
#递归删除目录(如果是非空目录,直接递归删掉,对于空目录只能删掉一层
shutil.rmtree(r'd:\d01',ignore_errors=True)
#重命名
shutil.move(r'd:\111',r'd:\222')
#对指定文件或目录进行压缩
#格式:shutil.make_archive(base_name, format,...)
#对d:\moive目录下的所有文件和子目录(moive目录本身不包含进来)压缩成:d:\backup.zip文件
# format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
# root_dir: 要压缩的文件夹路径(默认当前目录)
# owner: 用户,默认当前用户
# group: 组,默认当前组
# # logger: 用于记录日志,通常是logging.Logger对象
shutil.make_archive(r'd:\backup','zip',root_dir=r'd:\moive')
##############################
#创建zip压缩文件
import zipfile
z = zipfile.ZipFile(r"d:\backup.zip",'w') #创建d:\backup.zip压缩文件
z.write(r'd:\zabbix.txt') #指定哪些文件需要压缩
z.close()
#解压zip文件
x = zipfile.ZipFile('test.zip','r')
x.extractall()
x.close()
#创建tar压缩文件
import tarfile
tar = tarfile.open(r'd:\backup.tar','w') #创建d:\backup.tar压缩文件
tar.add(r'd:\nginx-chk.sh') #指定哪些文件需要压缩
tar.close()
#解压tar文件
tar = tarfile.open('tar.tar','r')
tar.extractall() # 可设置解压地址
tar.close()