学习笔记

Python-shutil模块

文件拷贝

copyfile() 复制文件

将文件从原来的路径复制到目标路径,如果目标文件已存在,则会进行覆盖

该函数只能用于复制文件,不能用于复制目录

该函数不会复制文件权限、时间戳等元数据到新文件上

copyfile(‘原始文件’,’新文件’)

copy()

类似于电脑上对文件的复制粘贴,既可以复制文件,也可以复制目录

如果目标路径是目录,则会将原路径中所有内容复制到目标路径下的一个新目录中

copy函数可以复制文件的权限,但是不能复制包括访问时间、修改时间等元数据

copymode() 拷贝文件权限

针对文件的权限(读、写、执行)进行拷贝,将一个文件的权限复制到另一个文件上

copystat 拷贝文件信息

将一个文件的信息包括(权限、最近访问时间、最近修改时间)等复制给另一个文件。“创建时间”无法被复制

copymode仅复制权限,而copystat不仅复制权限,还复制最近访问时间,最近修改时间等数据给另一个文件

copy2

相当于copy与copystat的集合

copyst仅复

文件移动

move() 移动文件(剪切)

移动文件后,文件会移动到新的目录,相当于剪切(ctrl+x)文件

压缩与解压

make_archive() 压缩

参数有许多,但主要的有3个,分别是base_name、format以及root_dir

base_name用于设置压缩包的名称

format用于设置压缩格式可以选择zip/tar/gztar/bztar

rootdir用于设置被压缩文件的目录,也就是设置要压缩哪些文件,默认为与python文件相同的目录(这点不确定)

将Python文件目录下的名为【1】的文件夹中的所有文件做成一个压缩包:shutil.make_archive(‘a’,’zip’,’1/’)

压缩指定目录下的所有文件与文件夹:shutil.make_archive(“my_archive”, “zip”,’C:/Users/llj/Music’)

unpack_archive() 解压

仅支持解压zip与tar格式的压缩包,不支持rar格式,如需解压rar压缩包,可以使用其他python库比如rarfile或unrar。

unpack_archive()需要填写被解压的压缩包目录,extract_dir解压位置(不填写默认当前目录),压缩包格式

重命名

shutil模块下的move函数也能实现对文件的重命名功能,只需要填写2个参数,原始文件的路径与重命名后的路径,比如将a.mp3文件改名称b.mp3

shutil.move(‘a.mp3′,’b.mp3’)

os模块rename() 重命名

os模块下rename()函数可以对文件进行重命名,该函数接受两个参数,分别是需要重命名的文件的原始名称与新名称

使用前需要import os

将a.mp3改名成b.mp3:os.rename(‘a.mp3′,’b.mp3’)

删除文件

os模块下的remove函数

os模块下的remove()函数可以对文件进行删除操作,该函数只需要输入一个参数,就是要被删除的文件的路径

import os

os.remove(‘b.mp3’)

如果参数中要被删除的文件不存在,则会触发报错:

FileNotFoundError: [WinError 2] 系统找不到指定的文件。: ‘b.mp3’

shutil模块下的rmtree()删除目录

shutil模块下的rmtree()函数可以删除文件夹,该函数接受一个参数,即要被删除的文件夹的路径

该操作会删除目录以及其包含的所有子目录与文件,删除操作无法被撤销,因此使用时应该谨慎

shutil.rmtree(‘D:\Python\shutill\文件夹’)

发表回复