📅  最后修改于: 2023-12-03 14:46:23.848000             🧑  作者: Mango
shutil.move(src, dst, copy_function=copy2)
方法用于递归移动文件或目录(包括其所有内容)。
参数说明:
src
:要移动的源文件或目录的路径。dst
:指定的目标路径。这可以是一个目录或新文件。copy_function
:用于在copytree
内部处理文件复制的可调用函数。默认值为shutil.copy2()
。如果要指定自定义复制功能,则可以提供新的copy_function
。shutil.move()
在将文件或目录移动到新目录时不会更改文件或目录的名称或路径。另外请注意,如果该文件或目录已存在于新位置,则会被覆盖。
下面是shutil.move()
的几个例子,让我们一起来看一下:
以下是将文件从/tmp/test.txt
移动到/tmp/newdir/test.txt
的示例:
import shutil
# 移动文件
shutil.move('/tmp/test.txt', '/tmp/newdir/test.txt')
如果您想保持原始文件的最近修改和上次访问时间,则可以传递copy_function=shutil.copystat
参数:
import shutil
# 移动文件,并保留文件的修改和访问时间
shutil.move('/tmp/test.txt', '/tmp/newdir/test.txt', copy_function=shutil.copystat)
以下示例将/tmp/old_dir
目录及其所有内容移动到/tmp/new_dir
目录内:
import shutil
# 移动目录及其内容
shutil.move('/tmp/old_dir', '/tmp/new_dir')
您可以使用自定义操作来复制/覆盖文件,我们可以通过将自定义复制函数传递给copy_function
参数来完成。下面是一个移动文件的示例,该文件具有自定义复制函数:
import shutil
# 自定义复制操作
def custom_copy(src_path, dst_path):
# 读取源文件的内容
with open(src_path, 'r') as fsrc:
data = fsrc.read()
# 写入到目标文件
with open(dst_path, 'w') as fdst:
fdst.write(data)
# 移动文件
shutil.move('/tmp/test.txt', '/tmp/newdir/test.txt', copy_function=custom_copy)
通过本文,我们已经了解了shutil.move()
方法。它提供了一种快速轻松地将文件及其内容移动到另一个目录的方法,并开放了许多自定义选项,以满足各种需求。