欢迎访问宙启技术站
智能推送

如何在Python中使用shutil函数复制文件?

发布时间:2023-07-01 05:01:45

shutil是Python中一个用于文件操作的标准库,其中的copy和copy2函数可以用来复制文件。copy函数只复制文件的内容,而copy2函数会复制文件的内容和其他元数据,比如访问时间和权限。

使用shutil复制文件的步骤如下:

1. 导入shutil库:

   import shutil
   

2. 使用copy函数复制文件:

   shutil.copy(src, dst)
   

其中,src是源文件的路径,dst是目标文件的路径。例如,将源文件/path/to/file.txt复制到目标文件/path/to/destination.txt

   shutil.copy("/path/to/file.txt", "/path/to/destination.txt")
   

如果dst是一个目录路径,那么源文件将会被复制到该目录下,并使用相同的文件名。

3. 使用copy2函数复制文件:

   shutil.copy2(src, dst)
   

同样,src是源文件的路径,dst是目标文件的路径。这个函数会复制文件的内容和其他元数据。如果dst是一个目录路径,那么源文件将会被复制到该目录下,并使用相同的文件名。

还可以设置其他可选参数来修改复制过程的行为,比如follow_symlinks参数用于确定是否复制符号链接文件。默认情况下,该参数是False,即不复制符号链接。

4. 使用copytree函数复制整个目录:

   shutil.copytree(src, dst)
   

src是源目录的路径,dst是目标目录的路径。该函数会递归地复制源目录及其子目录下的所有文件。

类似于copy2函数,copytree函数也可以接受其他可选参数,比如symlinks参数用于确定是否复制符号链接。默认情况下,该参数是False。

5. 错误处理:

当使用shutil函数复制文件时,如果目标文件或目录已经存在,将会引发FileExistsError异常。为了避免这种情况,可以使用os.path.exists函数先检查目标路径是否存在:

   import os.path
   if not os.path.exists(dst):
       shutil.copy(src, dst)
   

总结一下,要在Python中使用shutil函数复制文件,您需要导入shutil库,然后根据需要选择适当的函数(如copycopy2copytree)来复制相应的文件或目录。对于每个函数,您需要提供源文件的路径和目标文件的路径,可以使用其他可选参数来控制复制的行为。