Python的shutil模块

python-shutil模块拥有许多文件(夹)操作的功能,包括复制、移动、重命名、删除等等

import shutil

 

shuil.copyfile(open('aa.pe','r',encoding='utf-8'),open('as.py','w',encoding='utf-8'))             #拷贝文件,可以自己指定模式和编码方式

shuil.copyfile(r'D:\as.py','f2.log')      拷贝文件,第一个参数放一个源文件,第二参数放一个要拷贝到那个文件的名字,编码方式默认为utf-8

shutil.copymode('f1.log', 'f2.log') #目标文件必须存在     #仅拷贝权限。内容,组,用户均不变

shutil.copystat('f1.log', 'f2.log') #目标文件必须存在       #仅拷贝状态的信息,包括:mode bits ,atime,mtime,flags

shutil.copy2('f1.log', 'f2.log')     #拷贝文件和权限

shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除                         #递归的去拷贝文件夹

shutil.rmtree('folder1')        #递归的去删除文件,无论有无文件,都删除(危险操作,请勿尝试)

 shutil.move('folder1', 'folder3')                 #递归的去移动文件

 

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

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


#将 /data 下的文件打包放置当前程序目录
import shutil
ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')  
  
#将 /data下的文件打包放置 /tmp/目录
import shutil
ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')

 

zipfile 压缩解压缩

import zipfile

# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close()

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

tarfile压缩解压缩

import tarfile

# 压缩
t=tarfile.open('/tmp/egon.tar','w')
t.add('/test1/a.py',arcname='a.bak')
t.add('/test1/b.py',arcname='b.bak')
t.close()


# 解压
t=tarfile.open('/tmp/egon.tar','r')
t.extractall('/meet')
t.close()

 

你可能感兴趣的:(Python)