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() #解压某一个成员

  

 

posted @ 2018-08-28 14:08  greenfan  阅读(197)  评论(0)    收藏  举报