Python里shutil模块 高阶文件操作shutil的移动复制归档功能

shutil模块提供移动、复制、打包文件等高阶操作。1.移动用shutil.move(),可重命名或覆盖文件;2.复制单个文件用shutil.copy(),保留内容和权限,复制目录用shutil.copytree(),目标路径不可存在;3.打包用shutil.make_archive(),支持zip/tar格式,解压用shutil.unpack_archive();4.其他功能包括删除目录shutil.rmtree()、查找命令shutil.which()、查看磁盘使用shutil.disk_usage(),使用时注意测试防止误删。

在 Python 中处理文件和目录时,除了基本的读写操作,有时候还需要进行移动、复制甚至打包归档等操作。这时候 shutil 模块就派上用场了。它提供了很多方便的函数,让你能轻松完成这些“高阶”文件操作

移动文件或目录:shutil.move()

如果你需要把一个文件或者整个目录从一个地方挪到另一个地方,shutil.move() 就是你的首选。

这个函数的行为很像系统里的“剪切+粘贴”,使用起来也非常简单:

import shutilshutil.move('source_folder/file.txt', 'target_folder/')

如果目标路径不存在,会自动创建。如果目标路径已经存在同名文件,会被覆盖(注意备份)。如果你移动的是一个目录,里面的所有内容都会被一起移过去。

一个小技巧:如果你想重命名文件也可以用这个方法,只要在目标路径里改个名字就行,比如:shutil.move(‘old_name.txt’, ‘new_name.txt’)

复制文件或目录:shutil.copy() 和 shutil.copytree()

复制比移动更常用,特别是你想保留原文件的情况下。常用的有两个函数:

立即学习“Python免费学习笔记(深入)”;

shutil.copy(src, dst):复制单个文件shutil.copytree(src, dst):复制整个目录及其内容

举个例子:

# 复制单个文件shutil.copy('source.txt', 'backup.txt')# 复制整个文件夹shutil.copytree('original_dir', 'backup_dir')

需要注意的地方:

copy() 会保留原文件的内容和权限信息,但不会复制元数据(如时间戳)如果想复制元数据,可以用 copy2() 替代copytree() 的目标路径不能已存在,否则会报错

打包与解压:shutil.make_archive() 和 shutil.unpack_archive()

当你想把一堆文件打成压缩包,或者反过来解压一个 zip 文件,shutil 同样支持。

打包成压缩文件

shutil.make_archive('backup', 'zip', 'my_files')

这段代码会把 my_files 目录下的所有内容打包成 backup.zip

第一个参数是输出文件名(不含扩展名)第二个参数是格式,可以是 'zip', 'tar', 'gztar' 等第三个参数是要打包的目录

解压文件

shutil.unpack_archive('backup.zip', 'extract_here')

第一个参数是压缩包路径第二个参数是解压的目标路径,不填的话默认当前目录

其他实用功能简要提一下

虽然不是标题重点,但这里顺便提几个有用的函数:

shutil.rmtree(path):删除整个目录(包括里面的文件)shutil.which(cmd):查找某个命令是否存在 PATH 中shutil.disk_usage(path):查看磁盘使用情况

这些都能在日常脚本开发中带来便利。

基本上就这些,shutil 虽然功能不算复杂,但非常实用。关键是在做批量文件操作时,能省下不少手动处理的时间。不过也正因为它的“破坏性”操作较多,比如移动、删除,建议在正式运行前多测试几次,防止误删重要文件。

以上就是Python里shutil模块 高阶文件操作shutil的移动复制归档功能的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1362548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月14日 01:55:31
下一篇 2025年12月14日 01:55:39

相关推荐

  • Python中functools模块 高阶函数工具functools的偏函数解析

    偏函数是python中functools模块提供的一个类,用于冻结函数的部分参数,生成新函数。具体用途包括:1.简化接口,减少重复参数传递;2.在回调函数中预设参数;3.适配不匹配的函数签名。使用时需注意:1.参数顺序问题,建议用关键字传参避免混乱;2.避免过度嵌套影响可读性;3.与默认参数的区别在…

    好文分享 2025年12月14日
    000
  • Python中cv2的含义 OpenCV库在Python中的标准缩写cv2详解

    c++v2是python中引入opencv库的标准名称。opencv是一个用于图像处理和计算机视觉的开源库,cv2表示其第二代c++接口的python绑定。cv2可用于图像读取、显示与保存,图像滤波与增强,边缘检测与轮廓提取,物体识别与人脸检测,以及视频流处理等任务。例如,通过cv2.videoca…

    好文分享 2025年12月14日
    000
  • Python里多线程threading模块 Python中threading模块实现并发编程

    python的threading模块适合i/o密集型任务,如网络请求、文件读写等。1. 多线程适用于i/o密集型场景,能避免主线程卡住,但受gil限制,不适用于计算密集型任务,此时应使用multiprocessing模块。2. 创建线程常用thread类并调用start()方法启动,通过target…

    好文分享 2025年12月14日
    000
  • Python里pytest.fixture pytest测试框架中fixture的依赖注入机制

    fixture的依赖注入是指在pytest中通过参数传递的方式,让一个fixture依赖另一个fixture的返回值,从而形成资源准备的链式调用。具体来说,在定义某个fixture时,可将其所需的其他fixture作为参数传入,pytest会自动按需执行依赖的fixture并传递结果。例如:user…

    好文分享 2025年12月14日
    000
  • Python里hash函数原理 Python内置hash()函数的实现机制解析

    hash()函数用于生成对象的哈希值,是基于对象内容计算出的整数,用于快速比较和查找。1.哈希值不是加密,而是整数标识;2.不同对象可能有相同哈希值,称为哈希冲突;3.只有不可变对象如整数、字符串、元组可被哈希;4.整数哈希值为其自身,字符串使用siphash算法计算;5.元组若包含不可哈希元素则不…

    好文分享 2025年12月14日
    000
  • Python特征工程 Python机器学习数据预处理

    数据预处理和特征工程决定模型表现上限,需重视数据质量而非仅调参。1. 缺失值处理应先理解原因,再选择填充或保留缺失信息,避免直接删除;2. 类别编码根据类别数量选择one-hot或目标编码,防止维度爆炸;3. 特征缩放视模型而定,树模型无需缩放,线性模型则需标准化或归一化;4. 构造衍生特征应结合业…

    2025年12月14日
    000
  • Python协程编程指南 Python异步IO实现原理剖析

    协程是用户态轻量级线程,适合异步编程的原因在于其低启动成本、小切换开销及同步化代码风格。1. 协程由程序员控制调度,适合io密集型任务;2. 异步io依赖事件循环,负责协程调度与io监听;3. 使用async/await需注意函数定义、awaitable对象及避免阻塞主线程;4. 实际开发中通过并发…

    2025年12月14日
    000
  • Python中如何提取视频帧?

    在python中提取视频帧可以使用opencv库。1)安装并导入opencv。2)使用cv2.videocapture打开视频文件。3)逐帧读取并保存为图片。4)可设置间隔减少保存帧数。5)使用try-except处理异常。6)优化时可使用多线程或降低分辨率。 在Python中提取视频帧是一项常见的…

    2025年12月14日
    000
  • python中的关键字有哪些 python保留关键字列表及作用

    python的关键字有35个,截至python 3.9。它们分别是:1. false, true, none:布尔和空值常量;2. and, or, not:逻辑运算符;3. as:用于别名;4. assert:调试用;5. async, await:异步编程;6. break:跳出循环;7. cl…

    2025年12月14日
    000
  • 学python能干嘛 学习后就业方向

    学python可以从事web开发、数据科学、人工智能和自动化测试等多种职业。1)web开发:使用django和flask框架开发网站。2)数据科学:利用numpy和pandas处理数据。3)人工智能:通过tensorflow和pytorch开发ai应用。4)自动化测试:使用pytest和ansibl…

    2025年12月14日
    000
  • Python音频处理技术 Python音频分析与编辑方法

    python处理音频常见方法包括播放录制、剪切拼接、分析内容及注意细节。1.播放和录制可用pydub和pyaudio,前者适合格式转换,后者适合实时录音;2.剪切拼接通过切片操作实现,音量调整通过加减运算完成;3.分析音频可用librosa库,支持频谱分析、节拍提取、特征提取等;4.需注意格式转换、…

    2025年12月14日
    000
  • Python中time.sleep功能 时间模块sleep函数在延迟执行中的应用

    python中的time.sleep()用于暂停程序执行指定时间,属于time模块,使用时需导入该模块,并传入以秒为单位的整数或浮点数参数。1. 它会阻塞当前线程,在单线程脚本中适用,但并发环境下需谨慎使用;2. 常用于控制循环频率、模拟延迟及简单定时任务;3. 注意其精度可能受系统资源影响,不适合…

    好文分享 2025年12月14日
    000
  • Python里sys.argv的含义 sys模块中命令行参数argv的用法说明

    sys.argv用于获取python脚本的命令行参数。1. 参数以列表形式存储,第一个元素是脚本名称;2. 使用前需导入sys模块;3. 可通过索引访问参数,但需先判断参数个数或使用异常处理避免错误;4. 常见用途包括处理配置项和批量处理文件;5. 注意事项包括参数均为字符串、顺序重要、含空格需加引…

    好文分享 2025年12月14日
    000
  • python中del是什么意思 python中del删除对象的用法解析

    在python中,del用于删除对象的引用。1)删除变量:del x会移除变量x的引用,导致x不再存在。2)删除列表元素:del my_list[2]会删除索引为2的元素。3)删除列表切片:del my_list[1:3]会删除指定范围内的元素。4)删除字典键值对:del my_dict[&#821…

    2025年12月14日
    000
  • Python中如何绘制饼图?

    在python中绘制饼图的最常用工具是matplotlib库。使用matplotlib绘制饼图的步骤包括:1)导入库并准备数据,2)使用plt.pie()函数绘制基本饼图,3)通过colors、explode、shadow等参数定制饼图的外观,4)确保饼图是圆形并添加标题,最后显示图表。 在Pyth…

    2025年12月14日
    000
  • Python网络编程基础入门 Python网络通信关键技术点

    学python网络编程的关键在于理解网络通信的基本逻辑和常用方法。要让两个程序通过网络“说话”,首先要掌握socket通信,它是python网络编程的基础。服务端需监听ip和端口,客户端连接后即可传输数据。其次,要分清tcp和udp的区别:1. tcp是可靠的、面向连接的协议,适合传文字等对可靠性要…

    2025年12月14日
    000
  • Python密码学基础 Python加密算法库实战

    python在密码学领域常用场景包括对称加密、哈希处理和非对称加密。1.使用cryptography库实现aes-gcm对称加密,可加密和解密数据,需注意nonce唯一性和密钥保密;2.用hashlib结合salt及bcrypt实现安全密码存储,避免使用md5或sha-1;3.通过pycryptod…

    2025年12月14日
    000
  • Python中zipfile模块 压缩文件操作库zipfile的完整使用解析

    如何用python的zipfile模块处理zip文件?答案如下:1. 读取zip文件时,使用zipfile类打开并调用namelist()查看文件列表,或用extractall()解压全部内容;2. 创建zip文件时,以写模式打开zipfile并调用write()添加文件,推荐使用with语句管理资…

    好文分享 2025年12月14日
    000
  • pycharm是什么语言写的 开发语言技术解析

    pycharm是用java开发的。具体来说,pycharm利用java的生态系统和库构建,基于intellij idea平台,集成了python解释器,支持跨平台运行,并通过多线程和异步处理优化性能。 PyCharm是什么语言写的?这个问题其实涉及到软件开发的多种技术栈。PyCharm作为一个功能强…

    2025年12月14日
    000
  • Python文件操作技巧 Python读写文件常见方法汇总

    使用 with open 是 python 文件操作最稳妥的方式,能自动关闭文件避免资源泄露。常见模式包括 ‘r’ 只读、’w’ 写入(清空原内容)、’a’ 追加写入、’rb’/’wb&#82…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信