学习python?下面是如何复制文件

需要用Python代码复制文件吗?下面介绍如何用Python复制带有shutil、os、subprocess和库的文件...

您想提高Python技能吗?然后,您可以尝试使用Python在计算机上执行一些任务。使用Python将文件从一个目录复制和粘贴到另一个目录是一种有趣的方法。

Copy files in Python

除了有趣,它还可以让您快速地阅读和编写文件,而不会分散您的代码的注意力。如果您是Python的新手,那么您可能仍然需要采用某种方法来学习。因此,让我们通过本文了解如何使用Python复制文件。

使用python复制文件的要求

使用Python复制和粘贴文件有很多方法。因此,执行它的需求会有所不同,并取决于您决定使用的方法。

虽然使用Python复制文件可能不需要额外的模块,但如果需要,仍然可以使用内置库。

例如,如果要使用os方法,则需要将其导入到代码中。然而,用Python复制文件的一种流行方法是使用shutil库。

让我们看看如何使用这些不同的方法来用Python复制文件。

如何使用python内置的shutil库复制文件

shutil模块是一个内置的、功能强大的Python库,用于在Python中快速读写文件。

要使用它,只需提供源文件和目标文件的完整路径。

本质上,shutil采用以下格式:

shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

例如,下面的代码使用shutil.副本()复制名为复制.txt从一个名为“我的\文件夹”的文件夹进入另一个名为“目的地”的文件夹。然后将目标文件重命名为新文件.txt:

import shutil
sourceFile = "C:/Users/some_directories/my_folder/copy.txt"
destinationFile = "C:/Users/some_directories/destination/newFile.txt"
shutil.copy(sourceFile, destinationFile, follow_symlinks=True)

请注意,您可以在自己选择的任何代码编辑器中编写代码。然后可以使用命令行运行它。

但是,如果不熟悉通过命令行运行Python,也可以使用默认的Python集成开发环境(IDLE)。

相关:命令提示符(CMD)命令你必须知道

这个shutil.副本方法不复制源文件的元数据。本质上,您的机器将目标文件视为一个全新的文件,并为其提供新的元数据。

但是,要将元数据与原始文件一起复制,请使用shutil.copy2文件方法:

import shutil
shutil.copy2(sourceFile, destinationFile, follow_symlinks=True)

上面的方法将旧文件的原始元数据保存在目标文件中。例如,目标文件保留创建源文件的日期、大小和其他属性。

follow\u symlinks参数是一个符号链接声明,它允许shutil遵循绝对路径。因此,如果源文件和目标文件位于不同的目录中,则需要包含它。

但如果两个文件都在当前工作目录中,则不需要包含follow\u符号链接。如果这样做,Python会引发语法异常。

因此,如果要将源文件粘贴到当前工作目录中,代码应该如下所示:

import shutil
shutil.copy2(sourceFile, destinationFile)

除了使用上面的shtuil方法,还可以使用shutil.copyfile或者shutil.copyfileobj文件.

使用shutil.copyfileobj文件有点不同,因为它需要内置的open函数。然后,您需要通过包含“rb”和“wb”参数来读写二进制文件。

让我们看看shutil.copyfileobj文件方法使用我们以前使用的相同目录工作:

import shutil
sourceFilePath = open("C:/Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open("C:/Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj(sourceFilePath, destinationFilePath)

请注意shutil.copyfileobj文件()不需要follow\u symlinks参数。

然而,shutil.copyfile文件()的工作方式与.copy和.copy2的工作方式基本相同。它们的内部功能差别不大。

使用shutil.copyfile文件()方法:

import shutil
sourceFilePath = "C:/Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C:/Users/some_directories/destination/newFile.txt"
shutil.copyfile(sourceFilePath, destinationFilePath)

如何使用操作系统模块复制文件

操作系统模块使用两种内置方法来复制文件;操作系统()和欧斯波本()方法。

这个操作系统()方法允许您模拟命令行环境。

但是,os方法的一个缺点是它们只复制当前工作目录中的文件。

使用操作系统()Windows上的方法:

import os
os.system('copy source.txt destination.txt)

也可以使用内置的xcopy Windows terminal命令:

import os
os.system('xcopy source.txt destination.txt)

使用操作系统方法,将copy替换为cp:

import os
os.system('cp source.txt destination.txt)

如何使用欧斯波本方法

要使用此方法,请替换操作系统()带欧斯波本().

在Windows上,使用:

import os
os.popen('copy source.txt destination.txt)

就像我们对操作系统(),将copy替换为cp以在Linux上使用此方法:

import os
os.popen('cp source.txt destination.txt)

如何用python的子进程模块复制文件

除上述方法外,还可以使用subprocess()库复制Python中的文件:

import subprocess as sp
sp.call("copy sourceFile destinationFile", shell=True)

但是,在Linux上,请使用:

import subprocess as sp
sp.call("cp sourceFile destinationFile", shell=True)

子流程库还使用子流程检查()方法。它的工作方式相同子流程调用()执行:

import subprocess as sp
sp.check_out("copy sourceFile destinationFile", shell=True)

在Linux上,将copy替换为cp:

import subprocess as sp
sp.check_out("cp sourceFile destinationFIle", shell=True)

但是,与os方法一样,subprocess方法只能处理当前工作目录中的文件。

注意:如果文件与源文件位于同一工作目录中,也可以将其复制到文件夹中。您只需将目标文件名替换为目标文件夹的名称。但是,请确保目标文件夹和源文件位于当前工作目录中。

如何在不使用库的情况下复制python中的文件

也可以在Python中复制文件,而不依赖于任何库。与shutil方法一样,您只需要源目录和目标目录的完整路径。

以下是如何做到这一点:

sourcePath = "C:/Users/source_directories/my_folder/copy.txt"
destinationPath = "C:/Users/some_directories/destination_directories/newFile.txt"
with open(sourcePath, "rb") as read:
with open(destinationPath, "wb") as myfile:
myfile.write(read.read())

要使代码可重用,可以将其修改为函数:

def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, "rb") as read:
with open(destination, "wb") as myfile:
myfile.write(read.read())
else:
print("Please enter the source and destination paths")
copyFile(sourcePath, destinationPath)

就这样。您刚刚用Python**了一个可重用的文件复印机,没有使用任何库。

继续使用python自动化任务

除了帮助您在构建项目时专注于代码之外,使用Python复制文件还可以让您更好地理解Python的文件管理。但是,使用Python任务是提高Python技能的一种方法,特别是如果您是初学者的话。

例如,您可以使用操作系统模块更改PC上的日期和时间。如果需要,甚至可以用Python编写自定义bash命令。

  • 发表于 2021-03-11 10:45
  • 阅读 ( 336 )
  • 分类:编程

你可能感兴趣的文章

如何在任何使用python的计算机上安装selenium webdriver

...web应用程序。该框架可用于多种编程语言,包括Java、C#、Python和Perl。 ...

  • 发布于 2021-03-10 21:27
  • 阅读 ( 468 )

学习python?下面是如何操作字符串

使用Python可以通过多种方式操纵字符串。Python提供了各种函数、操作符和方法,可以用来操作字符串。您可以分割一个字符串,连接两个或多个字符串,在字符串中**变量,等等。 ...

  • 发布于 2021-03-11 10:21
  • 阅读 ( 326 )

通过脚本自动化gimp来节省您的时间和精力

... 在GIMP中使用Python编写脚本并不容易,但是如果您准备好学习诀窍的话,这是非常有益的。下面是如何开始使用几个非常基本的脚本。 ...

  • 发布于 2021-03-13 15:27
  • 阅读 ( 221 )

用这些免费的在线交互式shell在浏览器中试用python

如果您正在考虑学习Python,那么您可能会被初始设置过程弄得不知所措。您需要在系统上安装Python,然后学习如何使用命令行处理代码,或者学习如何使用交互式shell,或者学习如何设置pythonide。 ...

  • 发布于 2021-03-15 00:25
  • 阅读 ( 369 )

如何让python和javascript使用json进行通信

...用的是Windows,那么您需要下载并安装Python,也许还需要学习一下您的命令行技能。 ...

  • 发布于 2021-03-16 01:22
  • 阅读 ( 293 )

了解如何使用python虚拟环境

无论您是一名经验丰富的Python开发人员,还是刚刚起步,学习如何设置虚拟环境对于任何Python项目都是必不可少的。和我一起讨论Python虚拟环境的所有知识。 ...

  • 发布于 2021-03-16 10:00
  • 阅读 ( 233 )

如何用python读写google工作表

...的编程语言。语法可能看起来奇怪和不寻常,但它很容易学习和使用。它支持Minecraft Pi版,以及一系列网站和学术研究项目。 ...

  • 发布于 2021-03-16 13:43
  • 阅读 ( 582 )

制作一个树莓皮gmail通知灯

在这个快速简单的Raspberry Pi项目中,您将学习如何**Gmail电子邮件通知灯。如果您有任何未读的电子邮件,Python脚本会打开指示灯。这个项目需要很少的部分,可以在一个小时内完成!当然,你可以把你的LED打扮成任何你喜欢的...

  • 发布于 2021-03-17 17:32
  • 阅读 ( 218 )

如何使用pandas将excel数据导入python脚本

...使用过Python,那么本教程可能有点困难。我们建议从这些学习Python的网站和这些基本的Python示例开始。 ...

  • 发布于 2021-03-19 06:40
  • 阅读 ( 365 )

如何开始与树莓皮生锈

... Raspberry Pi是小型计算机的瑞士**,非常适合学习代码。让我们把两者结合起来,在覆盆子皮上涂上锈迹。 ...

  • 发布于 2021-03-21 09:18
  • 阅读 ( 263 )