Python 复制文件方法
Python 提供了内置函数,可以使用操作系统 Shell 实用程序轻松复制文件。
以下命令用于复制文件
shutil.copy(src,dst)
以下命令用于复制带有元数据信息的文件
shutil.copystat(src,dst)
如何在 Python 中复制文件
以下是使用shutil copy()方法在Python中复制文件的步骤:
步骤 1) 获取当前目录下的原始路径
在我们复制一个文件之前,我们需要获取当前目录下原始文件的路径。代码中——
- 声明变量
- 对变量应用拆分函数
代码说明
- 首先,我们将检查我们的“guru99.txt”文件是否存在。由于我们之前已经创建了 guru99.txt 文件,我们知道它存在,我们将继续代码
- 我们将文件路径存储在变量“src ” 如果您的文件存在
- 获得路径后,我们将把路径和文件名分开
- 为此,我们将使用拆分
path.split
源变量上的函数 - 代码在执行时打印出“文件名 ”和“文件路径 ” 分开
步骤 2) 使用shutil 模块创建现有文件的副本
我们使用Shutil 模块创建现有文件的副本。在这里,我们曾经创建了现有文件“guru99.txt”的副本。
代码说明
- 取原文件名“guru99.txt”,在“guru99.txt.bak”后加字母.bak。这个带有 .bak 扩展名的名称将成为我们的副本
- 然后我们将使用实用程序的复制功能从源复制到目标
- 运行代码时,您会看到在面板右侧创建了一个扩展名为 .bak 的重复文件
步骤 3) 复制与文件相关的元数据、文件权限等信息
复制功能只复制文件内容,不复制其他信息。复制元数据 与您必须使用的文件、文件权限和其他信息相关联的“copystat “ 功能。在我们运行这段代码之前,我们必须删除我们的副本文件“guru99.text.bak”。
删除文件并运行程序后,它将创建 .txt 文件的副本,但这次包含所有信息,例如 文件权限、修改时间和元数据信息 .你可以去你的操作系统外壳验证信息。
这是代码
import osimport shutilfrom os import pathdef main():# 复制现有文件 if path.exists("guru99.txt"):# 获取当前目录中文件的路径 src =path.realpath( "guru99.txt"); #将路径与过滤器头分开,tail =path.split(src) print("path:" +head) print("file:" +tail) #让我们通过将“bak”附加到名称dst来制作备份副本=src+".bak" # 现在使用shell 复制文件shutil.copy(src, dst) #复制权限,修改shutil.copystat(src,dst) if __name__=="__main__":main( )
步骤 4) 获取信息
可以获取上次修改的文本文件的信息
- 代码行#15- 它告诉.txt 文件 (guru99) 上次修改的日期、日期、月份、年份和时间。我们使用path模块来获取文件修改时间的详细信息,然后我们要使用时间类c时间函数 将其转换为可读的时间。所以当我们运行代码时,我们可以看到文件 guru99.txt 最后一次修改是在 Mon, Jan 8 th 2018 年 13:35。
- 代码行#17 - 它提供有关文件修改的信息,但它使用不同的格式来表示它。这里我们使用获取修改时间函数 (path.getmtime(“guru99.txt”))。现在我们将使用 From Time Stamp 函数 而不是使用 c 时间函数 并要构造一个日期时间对象。在输出中,您可以看到文件修改时间详细信息以不同的格式打印出来 2018-01-08, 13:35:51.334072
这是代码
## 使用 os 路径的示例文件 moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# 获取修改时间 t =time.ctime(path.getmtime("guru99.txt. bak")) print(t) print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak"))) if __name__ =="__main__":main()
总结
- 使用代码创建现有文件的副本 shutil.copy (src,dst)
- 将原始文件的所有信息复制到复制文件中,例如文件权限、修改时间或元数据信息 通过使用代码shutil.copystat(src,dst)
Python