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()
Java博客目录 | Python博客目录 | C#博客目录