pyhon模块-3

shutil是一个高级的文件、文件夹、压缩包的处理模块

常用的方法:

shutil.copyfileobj(fsrc,fdst[,length])

用途:将文件内容拷贝到另一个文件中,可以部分内容拷贝

注意,由于是作为object的拷贝,要求文件必须是打开状态,并且,fdst需要有可写状态

import shutil

f1 = open('test1.txt','r')
f2 = open('test2.txt','w')

shutil.copyfileobj(f1,f2)

 shutil.copyfile(src,dst)

用途:拷贝文件

import shutil

shutil.copyfile('test1.txt','test2.txt')

 直接拷贝,不需要打开文件

shutil.copy(src,dst)

用途:拷贝文件

import shutil

shutil.copy('test1.txt','test2.txt')

 相对于copyfile,copy会将用户原本的权限进行复制,但是所属的组、用户不进行copy

shutil.copymode(src,dst)

用途:仅拷贝权限,内容、组、用户均不变

shutil.copystat(src,dst)

用途:拷贝状态信息,包括:mode bits、atime、mtime、flags

shutil.copytree(src,dst,symlinks=False,ignore=None)

用途:递归的copy文件

shutil.rmtree(path[,ignore_errors[,onerror]])

用途:递归的删除文件

shutil.move(src,dst)

用途:递归的移动文件

shutil.make_archive(base_name,format,...)

用途:创建压缩包并返回文件路径,例如:zip、tar

base_name:压缩包的文件名,也可以是压缩包的路径,只是文件名时,保存在当前目录,否则保存在指定目录

format:压缩包的格式:zip、tar,bztar、gztar

root_dir:压缩包的文件夹路径(默认当前路径)

owner:所属用户

group:所属组

logger:用于记录日志,是logging.logger对象

shutil对于压缩包的处理,实际上是通过调用ZipFile和TarFile这2个模块来进行的:

import zipfile
z = zipfile.ZipFile(r'e:\test\test.zip','w')
z.write(r"d:\work\closers")
z.close()

 使用zipfile的时候,要注意的是,zipfile只能压缩文件,不能压缩目录

import tarfile
t = tarfile.open(r'e:\test\tar_test2.tar','w')
t.add(r'd:\work\closers',arcname='c')   #如果不指定arcname,那么会使用绝对路径,否则会只用arcname作为压缩的目录名称
t.close()

猜你喜欢

转载自funny121.iteye.com/blog/2356949
今日推荐