Javatpoint标志
Javatpoint标志

Python中的Shutil模块

在本教程中,我们将学习Python中的Shutil模块。我们将讨论如何执行高级文件操作,例如创建一个新的复制文件并将其存档,以及使用Python脚本将一个文件的内容复制到另一个文件。让我们对Shutil模块有一个基本的介绍。

Python Shutil模块

Python shutil模块提供了执行高级文件操作的工具。它可以操作文件对象,并为我们提供复制和删除文件的能力。它处理低级语义,例如在执行所有操作后创建和关闭文件对象。

Shutil模块的工作

Python shutil模块自带许多内置方法。我们将探讨几种重要的方法。要开始使用这个模块,首先需要将它导入到当前的Python文件中。

复制文件

此模块提供副本()函数,用于将数据从一个文件复制到另一个文件。文件必须在同一目录下,目标文件必须是可写的。让我们理解下面的语法。

语法- - - - - -

参数:

在上面的语法中-

  • 第一个参数是source,它显示源文件的路径。
  • 第二个参数是destination,它显示目标文件的路径。
  • 第三个参数是可选的;该参数的默认值为true。
  • 它返回一个字符串,显示新创建的文件的路径。

让我们来理解下面的例子。

的例子,

输出:

空文件夹:[]文件复制名称:['testcompare.py']

解释,

copy()函数以目录名作为参数。在这里,元数据未复制时,复制的文件将被视为新创建的文件。该方法还克隆了文件的所有权限。需要注意的一点是,如果目标文件已经存在,那么它将被源文件替换。

让我们看另一个例子。

示例:如果目的端为目录,则为- 2

输出:

D: \ \ NewFile中\ hello.txt Python项目

如前所述,copy()函数不复制元数据。但是,我们会用copy2 ()函数,该函数允许我们复制文件,包括其元数据。

例- 3:使用复制方法时的错误处理

输出:

源和目标表示相同的文件。

copy2()函数

这个函数类似于副本()函数。它还可以将一个文件的内容复制到另一个文件,但唯一的区别是它可以保留文件的元数据。让我们理解下面的语法。

语法:

参数:

在上面的语法中-

  • 第一个参数是source,它显示源文件的路径。
  • 第二个参数是destination,它显示目标文件的路径。
  • 第三个参数是可选的;该参数的默认值为true。
  • 它返回一个字符串,显示新创建的文件的路径。

让我们来理解下面的例子。

的例子,

输出:

操作系统。stat_result(st_mode=33206, st_ino=562949953459285, st_dev=3029671014, st_nlink=1, st_uid=0, st_gid=0, st_size=17, st_atime=1622815671, st_mtime=1622705607, st_ctime=1622705607)拷贝文件os。stat_result(st_mode=33206, st_ino=562949953459287, st_dev=3029671014, st_nlink=1, st_uid=0, st_gid=0, st_size=17, st_atime=1622815748, st_mtime=1622705607, st_ctime=1622706243) D:\Python Project\NewFile\hello.txt

shutil.copyfile()函数

此方法用于将源文件的内容复制到除元数据之外的目标文件。源文件和目标文件必须具有写权限。如果目标文件已经存在,那么它将被新文件所取代,否则创建新文件。

让我们看看下面的语法。

语法:

参数:

在上面的语法中-

  • 第一个参数是source,它显示源文件的路径。
  • 第二个参数是destination,它显示目标文件的路径。
  • 第三个参数是可选的;该参数的默认值为true。
  • 它返回一个字符串,显示新创建的文件的路径。

让我们来理解下面的例子。

的例子,

输出:

D: \ \ NewFile中\ hi.txt Python项目

shutil.copytree()函数

该方法用于复制完整目录。它将以源目录为根的整个目录树复制到目标目录。目标目录必须不存在。让我们看看下面的语法。

语法:

参数:

在上面的语法中:

  • src -它显示了源目录的路径。
  • 桌子- - - - - -它显示了目标目录的路径。
  • 符号链接(可选)它接受布尔值- True和False。这取决于原始链接或链接的元数据将被复制到新的树中。
  • 忽略(可选)默认情况下,它是None,但是如果传递了ignore,它必须是一个可调用对象,接收它的参数。该目录由copytree()访问。
  • copy_function(可选)copy2是该参数的默认值。的副本()函数可以作为参数使用。
  • ignore_dangling_symlinks(可选)此参数用于在symlink指向的文件不存在时引发异常。
  • 它返回表示新创建目录路径的字符串。

的例子,

输出:

目标路径:D:\Python Project\NewFolder

shutil.rmtree ()

该方法用于删除完整的目录树。让我们看看下面的语法。

语法:

参数- - - - - -

在上面的语法中-

  • 路径,它表示文件路径。类路径对象是字符串或字节对象。
  • ignore_errors -如果此参数为True,则删除将被忽略。
  • onerror -如果ignore_errors为false,则通过调用onerror指定的处理程序来处理此类错误。

让我们来理解下面的例子-

的例子,

上面的代码将删除给定的目录。

shutil.which()函数

shutil.which ()函数用于获取在调用给定CMD时将运行的可执行应用程序的路径。它在给定的路径中查找文件。让我们看看下面的语法。

语法:

参数

在上面的语法中-

  • cmd -它是表示文件的字符串。
  • 模式-它指定应该在其中执行方法的文件模式。
  • 路径,此参数指定要使用的路径。
  • 此方法返回可执行应用程序的路径。

让我们来理解下面的例子。

的例子,

输出:

Python C: \ \ python.EXE

它将在计算机中找到给定的文件,如果找到文件,它将返回文件的路径,否则返回None。


下一个话题 Python epoch到Datetime





Youtube 观看视频请加入我们的Youtube频道:现在加入

反馈


帮助他人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


B.Tech / MCA






Baidu
map