python之shutil模块

简介

shutil 是高级的文件,文件夹,压缩包处理模块。

使用

import shutil

copyfileobj

将文件内容拷贝到另一个文件中。

shutil.copyfileobj(open('old.py', 'r',encoding='utf-8'), open('new.py', 'w',encoding='utf-8'))

copyfile

拷贝文件。

shutil.copyfile('old.py','new.py')

copymode

仅拷贝权限。内容、组、用户均不变。

shutil.copymode('f1.log', 'f2.log')

copystat

仅拷贝状态信息,包括:mode bits, atime, mtime, flags。

shutil.copystat('f1.log', 'f2.log')

copy

拷贝文件和权限。

shutil.copy('f1.log', 'f2.log')

copy2

拷贝文件和状态信息。

shutil.copy2('f1.log', 'f2.log')

copytree

递归拷贝文件夹。

shutil.copytree('templates', '2templates', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

rmtree

递归删除文件夹。

shutil.rmtree('folder1')

move

递归的去移动文件。

shutil.move('templates', 'new/templates')

make_archive

按指定格式压缩文件。

'''
base_name:压缩后文件名
format:压缩格式,如:zip、tar、bztar、gztar
root_dir:要压缩的目标目录或文件
'''
ret = shutil.make_archive(base_name="templates", format='zip', root_dir='templates')
print(ret)  # 返回压缩包的绝对路径

unpack_archive

解压文件。

'''
filename:要解压的文件
extract_dir:解压后存放目录,默认解压到当前目录
format:解压格式
'''
shutil.unpack_archive(filename='templates.zip',extract_dir='templates',format='zip')

补充

shutil 对压缩包的处理是通过调用 zipfile 和 tarfile 两个模块来进行的。

zipfile

import zipfile
# 压缩
z = zipfile.ZipFile('code.zip', 'w')
z.write('new.py')
z.write('old.py')
z.close()

# 解压
z = zipfile.ZipFile('code.zip', 'r')
z.extractall()
z.close()

tarfile

import tarfile

# 压缩
tar = tarfile.open('code.tar', 'w')
tar.add('new.py', arcname='new.py')
tar.add('old.py', arcname='old.py')
tar.close()

# 解压
tar = tarfile.open('code.tar', 'r')
tar.extractall()  # 可设置解压地址
tar.close()
posted @ 2018-12-17 15:24  zze  阅读(218)  评论(0编辑  收藏  举报