千家信息网

python模块shutil函数怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下python模块shutil函数怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文大纲os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一
千家信息网最后更新 2026年11月01日python模块shutil函数怎么用

小编给大家分享一下python模块shutil函数怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

本文大纲

os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作。而Python另外一个标准库--shutil库,它作为os模块的补充,提供了复制、移动、删除、压缩、解压等操作,这些 os 模块中一般是没有提供的。但是需要注意的是:shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的。

知识串讲

本文所使用的素材,都是基于以下2个文件夹,其中一个文件夹为空。

1)模块导入

import shutil

2)复制文件

函数:shutil.copy(src,dst)含义:复制文件;参数:src表示源文件,dst表示目标文件夹;注意:当移动到一个不存在的"目标文件夹",系统会将这个不存在的"目标文件夹"识别为新的文件夹,而不会报错;

# 1.将a表的"data.txt"移动到b表src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\data.txt"dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_b"shutil.copy(src,dst)------------------------------------------------------------# 2.将a表的"data.txt"移动到b表,并重新命名为"new_data.txt"src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\data.txt"dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_b\new_data.txt"shutil.copy(src,dst)------------------------------------------------------------# 3.将a表的"data.txt"移动到"不存在"的文件夹src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\data.txt"dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_c"shutil.copy(src,dst)"""注意:对于情况3,系统会默认将"test_shutil_c"识别为文件名,而不是按照我们认为的,移动到一个新的不存在的文件夹。"""

结果如下:

3)复制文件夹

函数:shutil.copytree(src,dst)

含义:复制文件夹;

参数:src表示源文件夹,dst表示目标文件夹;

注意:这里只能是移动到一个空文件夹,而不能是包含其他文件的非空文件夹,否则会报错PermissionError;

① 如果目标文件夹中存在其他文件,会报错;

# 将a文件夹移动到b文件夹,由于前面的操作,此时b文件夹中已经有其他文件src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_b"shutil.copytree(src,dst)

结果如下:

② 如果指定任意一个目标文件夹,则会自动创建;

# c文件夹原本是不存在的,我们使用了下方的代码,会自动创建该文件夹src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_c"shutil.copytree(src,dst)

结果如下:

4)移动文件或文件夹

函数:shutil.move(src,dst)

含义:移动文件/文件夹;

参数:src表示源文件/文件夹,dst表示目标文件夹;

注意:文件/文件夹一旦被移动了,原来位置的文件/文件夹就没了。目标文件夹不存在时,会报错;

# 将当前工作目录下的"a.xlsx"文件,移动到a文件夹下dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"shutil.move("a.xlsx",dst)----------------------------------------------------------------# 将a文件夹下的"a.xlsx"文件,移动到b文件夹中,并重新命名为"aa.xlsx"src = r"C:/Users/黄伟/Desktop/publish/os模块/test_shutil_a\a.xlsx"dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_b\aa.xlsx"shutil.move(src,dst)

结果如下:

注意:移动文件夹操作类似,我这里就不赘述了,自行下去学习。

5)删除文件夹(慎用)

函数:shutil.rmtree(src)

含义:删除文件夹;

参数:src表示源文件夹;

注意:区别这里和os模块中remove()、rmdir()的用法,remove()方法只能删除某个文件,mdir()只能删除某个空文件夹。但是shutil模块中的rmtree()可以递归彻底删除非空文件夹;

# 将c文件夹彻底删除src = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_c"shutil.rmtree(src)

结果如下:

6)创建和解压压缩包

zipobj.write():创建一个压缩包;

zipobj.namelist():读取压缩包中的文件信息;

zipobj.extract():将压缩包中的单个文件,解压出来;

zipobj.extractall():将压缩包中所有文件,解压出来;

shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的,因此需要导入这两个模块;

注意:这里所说的压缩包,指的是".zip"格式的压缩包;

① 创建一个压缩包

import zipfileimport osfile_list = os.listdir(os.getcwd())# 将上述所有文件,进行打包,使用"w"with zipfile.ZipFile(r"我创建的压缩包.zip", "w") as zipobj:    for file in file_list:        zipobj.write(file)

结果如下:

② 读取压缩包中的文件信息

import zipfilewith zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:    print(zipobj.namelist())

结果如下:

③ 将压缩包中的单个文件,解压出来 注意:目标文件夹不存在,会自动创建;

import zipfile# 将压缩包中的"test.ipynb"文件,单独解压到a文件夹下dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a"with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:    zipobj.extract("test.ipynb",dst)

结果如下:

④ 将压缩包中所有文件,解压出来; 注意:目标文件夹不存在,会自动创建;

import zipfile# 将压缩包中的所有文件,解压到d文件夹下dst = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_d"with zipfile.ZipFile("我创建的压缩包.zip", "r") as zipobj:    zipobj.extractall(dst)

结果如下:

看完了这篇文章,相信你对"python模块shutil函数怎么用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

文件 文件夹 模块 黄伟 移动 目标 结果 函数 参数 含义 源文件 两个 会报 信息 单个 标准 目录 知识 篇文章 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 善班互联网科技 互联网科技革命 互联网科技的英文 九亚互联网科技 青海省互联网新科技 上海电发互联网科技有限公司 农村开互联网科技讲堂 创业天下互联网科技有限公司 汽车互联网创新科技园 重庆互联网医院沙龙医盟信息科技 浙江互联网科技研学营 青岛科技大学互联网大赛研究生 互联网科技产业特征 新兴科技互联网创新大赛颁奖典礼 广西互联网科技孵化中心 互联网科技公司营业执照怎么办理 群盈汇互联网科技有限公司 城市宝互联网科技有限公司 卡尔迅互联网科技有限公司 南京欣网互联网络科技有限公司 广州万易互联网科技有限公司 港股互联网科技股 深圳科技互联网 开启互联网科技时代小说 互联网科技产业特征 互联网科技研发水平 乌苏新华互联网科技做什么的 优雇互联网科技有限公司 武汉亿视互联网科技有限公司
0