Menu Close

Python拷贝文件shutil.copy

Python复制文件方法

Python提供了复制文件的内置函数。

以下命令用于复制文件

shutil.copy(src,dst)

以下命令用于复制带有元数据信息的文件

shutil.copystat(src,dst)

以下是在Python中复制文件的步骤

步骤1)在复制文件之前,我们需要获取当前目录中原始文件的路径。在代码中-

  1. 声明变量
  2. 分别获取路径和文件名

%title插图%num

 

代码说明

  • 首先,我们要检查“icfedu.txt”文件是否存在。由于我们之前已经创建了icfedu.txt文件,如果该文件存在,我们继续下一步
  • 如果文件存在,我们会将文件路径存储赋值给“ src
  • 获得路径后,我们将路径和文件名分开
  • 为此,我们将path.split在源变量上使用split函数
  • 执行时的代码分别打印出“文件名”和“文件路径

步骤2)我们使用Shutil模块创建现有文件的副本。在这里,我们用来创建现有文件“ icfedu.txt”的副本。

%title插图%num

代码说明

  • 取原始文件名“ icfedu.txt”,并在“ guru99.txt.bak”末尾添加字母.bak。该扩展名为.bak的文件为副本
  • 然后我们将shutil.copy方法将其从源复制到目标
  • 运行代码时,您将在面板上看到一个扩展名为.bak的文件。

步骤3)复制功能仅复制文件的内容,而不复制其他信息。要复制与文件关联的元数据,权限和其他信息,您必须使用“ copystat ”功能。在运行此代码之前,我们先删除“ icfedu.txt.bak”。

删除文件并运行程序后,它将创建.txt文件的副本,但这一次包含所有信息,例如文件权限,修改时间和元数据信息

 

代码:

1
2
3
4
5
6
7
8
9
10
11
import os
import shutil
from os import path
if path.exists("icfedu.txt"):
    src = path.realpath("icfedu.txt")
    head,tail = path.split(src)
    print("path:"+head)
    print("file:" + tail)
    dst = src + ".bak"
    shutil.copy(src, dst)
    shutil.copystat(src,dst)

步骤4)获取文件上次修改时间

代码:

1
2
3
4
5
from os import *
import time
import datetime
print(datetime.datetime.fromtimestamp(path.getmtime("icfedu.txt.bak")))
print(datetime.datetime.fromtimestamp(path.getmtime("icfedu.txt")))

Output:

2021-02-27 10:39:27.434607
2021-02-25 10:56:11.844913

概括

  • 通过使用shutil.copy(src,dst)创建现有文件的副本
  • 使用代码shutil.copystat(src,dst)将原始文件的所有信息复制到重复文件中,例如权限,修改时间或元数据信息
Posted in Python
0 0 投票数
Article Rating
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论

相关链接