python shutil模块学习笔记


前言

本文参考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路径所指的文件,需要注意的是如果文件存在,可能会直接覆盖


总结

主要记录了一些文件复制、移动、删除等一些比较常用的方法,除此之外,还有归档操作等,详细操作可查看官网,附官方文档中文官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值