详解Python 移动或复制文件和目录

  • Post category:Python

下面是Python移动或复制文件和目录的完整攻略。

前置知识

在Python中,移动或复制文件和目录主要依赖于shutil模块。因此,在使用该模块前,需要了解以下其它相关知识:

  • os模块:提供了许多与操作系统交互的函数。
  • 文件路径:在使用shutil模块时,需要提供文件或目录的路径。可以使用相对路径或绝对路径,其中相对路径相对于当前工作目录,而绝对路径则需要完整的路径。

移动/重命名文件与目录

要移动或重命名一个文件或目录,需要使用shutil模块的move()函数。下面是使用示例:

import shutil

# 移动文件,即将a.txt移动到b.txt
shutil.move('a.txt', 'b.txt')

# 重命名文件,即将a.txt重命名为c.txt
shutil.move('a.txt', 'c.txt')

# 移动目录,即将./a目录移动到./b目录
shutil.move('./a', './b')

注意到当目标路径是一个已经存在的目录时,源路径将会被移动到该目录下;而当目标路径是一个不存在的文件或目录时,源路径将会被重命名。

复制文件与目录

要复制一个文件或目录,需要使用shutil模块的copy()或copy2()函数。其中,copy()函数只复制文件的内容,而copy2()函数不仅复制文件的内容,还会一并复制文件的元数据(如权限、时间戳等)。下面是使用示例:

import shutil

# 复制文件,即将a.txt复制为b.txt
shutil.copy('a.txt', 'b.txt')

# 复制目录,即将./a目录复制到./b目录
shutil.copytree('./a', './b')

需要注意的是:

  • 当目标路径是一个已经存在的目录时,复制的文件/目录将被拷贝到该目录下;
  • 当目标路径是一个不存在的文件或目录时,将创建该目录;
  • 如果需要删除已有的目标文件或目录,可以使用shutil.rmtree()函数。

总结

以上就是Python移动或复制文件和目录的完整攻略。使用shutil模块,可以轻松地完成文件或目录的移动、复制和重命名操作。需要注意的是,目标路径是否已经存在,以及使用哪个shutil函数,可能会影响操作的结果。