shutil库学习之copy和copy2函数

2024-08-25 18:36
文章标签 函数 学习 copy shutil copy2

本文主要是介绍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
  • 当目标路径为目录时,文件将使用源文件名进行复制;如果目标路径为文件,则目标文件名将被指定。

这篇关于shutil库学习之copy和copy2函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106332

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不