模块-shutil
高级的文件、文件夹、压缩包处理
- shutil.copyfileobj(fsrc,fdst,[length]) #length表示每次读多少
f1=open('f1.txt','r') f2=open('f2.txt','w') shutil.copyfileobj(f1,f2) f1.close() f2.close()
- shutil.copyfiel(src,dst) #拷贝两个文件,无需打开
- shutil.copymode(src,dst) #仅拷贝权限,内容、组、用户均不变
- shutil.copystat(src,dst) #拷贝状态信息,包括utime,chmod,chflags等
- shutil.copy(src,dst) #拷贝文件和权限
- shutil.copy2() #拷贝文件和状态信息
- shutil.copytree(src,dst,symlinks=False,lgnore=None) #递归拷贝目录和文件,symlinks表示是否拷贝软链接,lgnore表示忽略那些文件,ignore=shutil.ignore_patterns("__init__.py","__init__..pyc")
shutil.copytree('d1','d2')
- shutil.rmtree(path,[ignore_errors]) #递归删除目录,ignore_errors忽略错误
- shutil.move(srt,dst) #递归移动文件
shutil.move('d1','d11')
- shutil.make_archive(base_name,format....) #创建压缩文件,归档
- base_name:压缩包的文件名,无需后缀,也可以包含压缩包存储路径。只是文件名,则保存到当前目录,否则保存到指定路径
- format:压缩包格式,"zip","tar","bztar","gztar"
- root_dir:要压缩的文件夹路径,默认当前目录
- owner:用户,默认当前用户
- group:用户组,默认当前用户组
- logger:用于记录日志,通常为loggin.Logger对象
shutil.make_archive('D:\\d11',"zip",root_dir="C:\Python36\d11") 'D:\\d11.zip'
- shutil文件压缩是封装ZipFile和TarFile两个模块来实现
#这里write添加文件夹,不会自动添加文件夹中的文件 z=zipfile.ZipFile('test.zip','w') z.write('d11') z.write('Scripts') z.close()
解压:
z=zipfile.ZipFile('test.zip','r') z.extractall() z.close()
TarFile,只打包,不压缩
import tarfile f=tarfile.open('test.tar','w') f.add(r"C:\Python36\Scripts")#没加arcname参数,默认将路径也同步打包。可自定义名称,如pack_test f.add(r"C:\Python36\Doc") f.close()