shutil模块之目录操作

212 阅读1分钟

os模块不仅提供了新建文件、删除文件、查看文件属性的操作功能,还提供了对文件路径的操作功能。但是,对于移动、复制、打包、压缩、解压文件及文件夹等操作,os模块没有提供相关的函数,此时需要用到shutil模块。 shutil模块是对os模块中文件操作的补充,是Python自带的关于文件、文件夹、压缩文件的高层次的操作工具,类似于高级API。

1 目录剪切

这里也使用的是shutil.move函数,前面已做介绍,这里不再赘述,直接举例说明

如果目标路径指向一个文件夹,那么指定目录将被剪切到目标路径指向的文件夹中,并且保持其原有名字

剪切前:

image-20220516214236321.png

shutil.move(
    r"D:\workspace\Python_excerise\data\test_dir",
    "D:\workspace\Python_excerise"
)

剪切后:

image-20220516214319107.png

2 目录复制

这里也使用的是shutil.copy函数,前面已做介绍,这里不再赘述,直接举例说明

复制前: image-20220516214236321.png

shutil.copytree(
    r"D:\workspace\Python_excerise\data\test_dir",
    r"D:\workspace\Python_excerise\test_dir",
)

复制后:

image-20220516220720165.png

3 目录删除

3.1 删除空目录

删除前:

image-20220516222408300.png

shutil.rmtree(
    r"D:\workspace\Python_excerise\test_dir",
)

删除后:

image-20220516222436528.png

3.2 删除非空目录

删除前:

image-20220516222509186.png

shutil.rmtree(
    r"D:\workspace\Python_excerise\test_dir",
)

删除后:

image-20220516222436528.png

3.3 删除多级目录

删除前:

image-20220516222611006.png

shutil.rmtree(
    r"D:\workspace\Python_excerise\test_dir",
)

删除后:

image-20220516222436528.png