python shutil

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# shutil 高级的文件、文件夹、压缩包处理模块
import shutil

#1.copyfileobj(源文件,目标文件) 将文件内容复制到另一个文件

#shutil.copyfileobj(open('config.log','r'),open('pic.json','a'))

#2.copyfile(源文件,目标文件) 复制文件,如果没有目标文件则创建一份,有,清除后复制内容

#shutil.copyfile('zp.xml','write1Xml.xml')

#3.copy(源文件,目标文件) 复制文件和状态信息
shutil.copy('zp.xml','w1.xml')
#4.copymode(源文件,目标文件) 仅复制权限。内容、组、用户均不变 (前提是dst文件存在,不然报错)
#5.copytree(源文件夹, 目标文件夹, 忽略的文件类型) 递归的去拷贝文件夹(前提是目标文件夹不存在)

#shutil.copytree('D:/Python/mypy/basic','D:/Python/mypy/mm',ignore=shutil.ignore_patterns('*.py'))
# 6.rmtree(path[, ignore_errors[, onerror]]) 递归的去删除文件

#7.move(源文件夹, 目标文件夹) 递归的去移动文件,它类似mv命令,其实就是重命名

#----------------------------------------------------------------------------------------
#操作压缩包
# make_archive(base_name, format,...)
# base_name: 压缩包的文件名,也可以是压缩包的路径。
# 只是文件名时,则保存至当前目录,否则保存至指定路径
# format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
# root_dir: 要压缩的文件夹路径(默认当前目录)
# owner: 用户,默认当前用户
# group: 组,默认当前组
# logger: 用于记录日志,通常是logging.Logger对象

#shutil.make_archive('basic','zip',root_dir='D:/Python/mypy')

# 两种操作压缩包的方式:zipfile和tarfile
import zipfile

##将某个文件压缩进已经存在的压缩包里
# zi = zipfile.ZipFile('D:/Python/mypy/hh.zip','w')
# zi.write('D:/Python/mypy/Hello World.py')
# zi.write('D:/Python/mypy/basic/blog.xml')
# zi.close()

##解压,会解压到当前文件目录下
# zz = zipfile.ZipFile('D:/Python/mypy/hh.zip','r')
# zz.extractall()
# zz.close()

import tarfile
# 压缩
# tar = tarfile.open('D:/Python/mypy/hh.zip','w')
# tar.add('D:/Python/mypy/basic/zp.xml',arcname='zb.xml')#arcname是在压缩包中名称
# tar.close()

##解压
tt = tarfile.open('D:/Python/mypy/hh.zip','r')
tt.extractall('D:/www')#解压到的位置
tt.close()
原文地址:https://www.cnblogs.com/wuxinyan/p/8886320.html