当前位置: 首页 > news >正文

shutil库学习之copy和copy2函数

shutil库学习之copy和copy2函数

一、简介

shutil.copyshutil.copy2是Python中shutil模块提供的两个用于复制文件的函数。它们的主要功能都是将源文件复制到目标位置,但在处理元数据(如文件的修改时间、访问时间等)时有所不同。

写这篇博客的原因:某天我用copy函数拷贝图片,结果拷贝后的图片全都没法打开,蒙圈了,结果是由于copy和copy2的差别引起的。

二、语法和参数

shutil.copy

语法:

shutil.copy(src, dst, *, follow_symlinks=True)

参数:

  • src: 源文件的路径。
  • dst: 目标路径,可以是文件或目录。如果是目录,则目标文件名将与源文件名相同。
  • follow_symlinks: (可选)默认为True,表示如果src是符号链接,复制链接指向的文件。设置为False时,复制符号链接本身。

返回值:
返回目标文件的路径。

shutil.copy2

语法:

shutil.copy2(src, dst, *, follow_symlinks=True)

参数:
shutil.copy相同,但在复制文件的同时,还会复制文件的所有元数据,如修改时间、访问时间、权限等。

返回值:
返回目标文件的路径。

三、实例

3.1 使用 shutil.copy 复制文件

以下示例演示了如何使用shutil.copy将一个文件复制到指定目录。

代码:

import shutil# 将文件复制到指定目录
src = 'example.txt'
dst = 'backup/'
shutil.copy(src, dst)

输出:

'backup/example.txt'
3.2 使用 shutil.copy2 复制文件

此示例展示了使用shutil.copy2复制文件,同时保留源文件的元数据。

代码:

import shutil
import os# 将文件复制到指定目录,同时保留元数据
src = 'example.txt'
dst = 'backup/'
shutil.copy2(src, dst)# 查看文件的修改时间
print("Original file modification time:", os.path.getmtime(src))
print("Copied file modification time:", os.path.getmtime(os.path.join(dst, 'example.txt')))

输出:

Original file modification time: 1660585200.0
Copied file modification time: 1660585200.0

四、注意事项

  • shutil.copy不会复制文件的元数据,仅复制文件内容及权限。
  • shutil.copy2在复制文件内容的同时,也会复制文件的元数据,因此在需要保留文件属性时,应优先选择shutil.copy2
  • 当目标路径为目录时,文件将使用源文件名进行复制;如果目标路径为文件,则目标文件名将被指定。

http://www.mrgr.cn/news/14321.html

相关文章:

  • Docker常见命令和参数
  • oracle日常训练
  • 什么是激光测距仪
  • 美团2024年春招第一场笔试【前端移动端方向】编程题题解Java
  • 科技霓虹笔迹(博客)测试报告
  • 【软考】【多媒体应用设计师】元数据与数字对象标识码
  • MATLAB 计算凹凸多边形的面积(85)
  • SpringBoot概述及创建项目
  • 百日筑基第六十二天-持续集成和持续交付的 pipeline 概念
  • ShardingSphere学习笔记
  • spring mvc面试笔记
  • 还在拼接字符串生成XML?(Java)
  • 当JVM中出现负载突然过大的情况时,我们该如何应对?
  • 【Qt笔记】QCheckBox控件详解
  • CSS系列之详解overflow(四)
  • 如何在 Android 智能手机上恢复已删除的图片
  • Python和MATLAB及R平均意见得分导图
  • 如何使用nginx实现负载均衡
  • 用代码和android studio创建flutter项目的区别差异
  • Python进阶(十一)】—— Pandas和Seaborn可视化