python之shutil

本文介绍了Python的shutil模块,该模块提供了一系列高级文件操作功能,如复制、移动、压缩和解压。它是Python的标准库之一,无需额外安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块介绍

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值