前言
本文参考python官方文档,进行学习并整理,附官方文档中文官方文档
一、总述
shutil模块提供了一系列对文件和文件集合的高阶操作,对于单个文件的操作,一般使用os
模块
二、文件和目录操作
拷贝单个文件
shutil.copy(src, dst, *, follow_symlinks=True)
将文件 src 拷贝到文件或目录 dst。 src 和 dst 应为路径类对象 或字符串。 如果 dst 指定了一个目录,文件将使用 src 中的基准文件名拷贝到 dst 中。 将返回新创建文件所对应的路径。
代码如下(示例):
import shutil
src_path = r"C:\Users\samsung\Desktop\test_shutil\copy.docx"
dst_path = r"C:\Users\samsung\Desktop"
a = shutil.copy(src_path,dst_path)
print(a)
输出为
C:\Users\samsung\Desktop\copy.docx
即可将文件src_path复制到dst_path所在的文件夹下,并返回新创建文件所对应的路径
运行过程中报错
1.
出现权限错误,通过查找资料,有提出斜杠方向不对和文件不存在,经过重新看代码,发现自己最初源路径和目的路径写反了,因此不存在该文件,修改后即可。
2.如果源文件路径为目录,也会报错(测试过)。
复制后可指定文件名
上述代码直接将文件复制到指定文件夹,使用 src 中的文件名,也可改变复制文件的文件名
代码如下(示例):
import shutil
src_path = r"C:\Users\samsung\Desktop\test_shutil\copy.docx"
dst_path = r"C:\Users\samsung\Desktop\copy1.docx"
a = shutil.copy(src_path,dst_path)
print(a)
拷贝整个文件夹
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False)
将以 src 为根起点的整个目录树拷贝到名为 dst 的目录并返回目标目录。 dirs_exist_ok 指明是否要在 dst 或任何丢失的父目录已存在的情况下引发异常。
import shutil
src_path = r"C:\Users\samsung\Desktop\test_shutil"
dst_path = r"C:\Users\samsung\Desktop\test_1"
a = shutil.copytree(src_path,dst_path)
print(a)
可将test_shutil中的所有内容复制到dst_path所在文件夹中,注意:test_1为不存在的文件夹
运行过程中报错
1.dst_path中的路径为已经存在的文件夹,则报错,即不可以将一个文件夹直接复制到另外一个文件夹中,必须给文件夹重命名
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'C:\\Users\\samsung\\Desktop'
删除目录
shutil.rmtree(path, ignore_errors=False, onerror=None)
删除一个完整的目录树;path 必须指向一个目录。
返回值为None,只要目录存在,应该不会报错
移动目录或文件
shutil.move(src, dst, copy_function=copy2)
递归地将一个文件或目录 (src) 移至另一位置 (dst) 并返回目标位置。
import shutil
src_path = r"C:\Users\samsung\Desktop\copy.docx"
dst_path = r"C:\Users\samsung\Desktop\test_shutil\copu.docx"
#
# a = shutil.copytree(src_path,dst_path)
a = shutil.move(src_path,dst_path)
print(a)
注意事项
1.可以将文件直接移动到文件夹中,即src为文件,dst为文件夹,将src指向的文件移动到dst文件夹下
2.src和dst均为文件夹,将整个src文件夹移动到dst下
3.src为文件,dst为文件时,即可将src的文件复制为dst路径所指的文件,需要注意的是如果文件存在,可能会直接覆盖
总结
主要记录了一些文件复制、移动、删除等一些比较常用的方法,除此之外,还有归档操作等,详细操作可查看官网,附官方文档中文官方文档