模块介绍
shutil是shell utility的缩写,实现了在Python中实现文件复制、移动、压缩、解压等高级功能,是Python的系统模块,不需要额外安装。
常用函数
函数 | 作用 |
---|---|
shutil.copyfile( src, dst) | 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉 |
shutil.move( src, dst) | 移动文件或重命名 |
shutil.copymode( src, dst) | 只是会复制其权限其他的东西是不会被复制的 |
shutil.copystat( src, dst) | 复制权限、最后访问时间、最后修改时间 |
shutil.copy( src, dst) | 复制一个文件到一个文件或一个目录 |
shutil.copy2( src, dst) | 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西 |
shutil.copy2( src, dst) | 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作 |
shutil.copytree( olddir, newdir, True/Flase) | 把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接 |
shutil.rmtree( src ) | 递归删除一个目录以及目录内的所有内容 |
import shutil
import zipfile
# Python中实现文件复制、移动、压缩、解压等高级功能,是Python的系统模块,不需要额外安装。
# ====================文件的复制==================
def my_copy():
# shutil.chown('test.txt', user='mysql', group='mysql') # 改变文件的属主和属组
# shutil.copyfile() 如果是链接文件,将复制新文件,不复制链接
# shutil.copymode() 带权限复制
# shutil.copystat()拷贝文件的访问和修改时间,其他不受影响
# shutil.copy('C:/Users/zz/Desktop/copy.pdf', 'C:/Users/zz/Desktop/copy_back.pdf') # 单个文件的复制shutil.copyfile()
# shutil.copy('C:/Users/zz/Desktop/copy.pdf', 'C:/Users/zz/Desktop/copy_back.pdf') # 复制文件及所有的统计信息
shutil.copytree('C:/Users/zz/Desktop/', 'C:/Users/zz/Desktop/node') # 文件夹的复制
pass
def my_move():
shutil.move('C:/Users/zz/Desktop/copy.pdf', 'C:/Users/zz/Desktop/复制.pdf') # move单个文件
# 和copy的差不多
# shutil.rmtree()递归删除文件
def my_zip():
# shutil.make_archive('C:/Users/zz/Desktop/压缩包名字', 'zip', root_dir='C:/Users/zz/Desktop/node')压缩
z = zipfile.ZipFile('C:/Users/zz/Desktop/压缩包名字.zip', 'w') # 对压缩包进行操作,写入文件
z.write('C:/Users/zz/Desktop/复制.pdf')
z.close()
def my_unzip():
z=zipfile.ZipFile('C:/Users/zz/Desktop/压缩包名字.zip', 'r')
z.extractall(path='C:/Users/zz/Desktop/解压的路径') # 解压到指定路径下
z.close()
if __name__ == '__main__':
# my_zip()
my_unzip()