下面是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函数,可能会影响操作的结果。