shutil模块 高级的文件、文件夹、压缩包处理模块
import shutil
#将文件内容拷贝到另一个文件中
#shutil.copyfileobj(fsrc,fdst[,length])
shutil.copyfileobj(open("old.xml","r"),open("new.xml","w"))
#拷贝文件 shutil.copyfile(src,dst)
shutil.copyfile("f1.log","f2.log")
#仅拷贝权限,内容、组、用户不变 shutil.cpymode(src,dst)
shutil.copymode("f1.log","f2.log")
#拷贝状态信息,包括mode bits,atime,mtime,flags
shutil.copystat("f1.log","f2.log")
#拷贝文件和权限
shutil.copy("f1.log","f2.log")
#拷贝文件和状态信息
shutil.copy2("f1.log","f2.log")
#递归的去拷贝文件夹
shutil.copytree("folder1","folder2", ignore=shutil.ignore_patterns("*.pyc","*.tmp")) #忽略.pyc和.tmp文件
#symlinks = True,如果源文件夹是快捷方式,那么此参数决定复制的是快捷方式还是其指向的目标文件夹
shutil.copytree("folder1","folder2", symlinks = True,ignore=shutil.ignore_patterns("*.pyc","*.tmp"))
#递归的去删除文件,类似于:rm -rf
shutil.rmtree("folder1")
#递归的移动文件,类似:mv命令,就是重命名
shutil.move("folder1","folder3")
#将/usrs/downloads/test下的文件打包放置到当前程序目录
import shutil
ret = shutil.make_archive("xxxx","gztar",root_dir="/usrs/downloads/test")
"xxx"是文件名,gztar是压缩格式(zip,tar,bztar,gztar),root_dir是压缩路径
#将/usrs/downloads/test下的文件打包放置到/usrs/aaa:
ret = shutil.make_archive("/usrs/aaa/xxx","gztar",root_dir="usrs/downloads/test")
#压缩模块基于zipfile和tarfile模块
#创建xxx.zip,往里添加文件
import zipfile
z = zipfile.ZipFile("xxx.zip","w")
z.write("a.log")
z.write("test.txt")
z.close()
#解压
z = zipfile.ZipFile("xxx.zip","r")
z.extractall() #解压所有文件
z.close()
z.namelist()#列出压缩包中的文件名
z.extrace("xxx.py")#将xxx.py解压
#tar压缩包
import tarfile
tar = tarfile.open("your.tar","w")
tar.add("/usrs/downloads/aaa.log",arcname="rename") #arcname可以给压缩的文件重命名一个新名字
tar.close()
#解压
tar = tarfile.open("your.tar","r")
tar.extractall() #可设置解压地址
tar.close()
tar.getmembers()#获取压缩包中所有成员
tar.extractfile() #解压某一个成员

浙公网安备 33010602011771号