📜  Python| shutil.move() 方法(1)

📅  最后修改于: 2023-12-03 14:46:23.848000             🧑  作者: Mango

Python | shutil.move() 方法

1. 概述

shutil.move(src, dst, copy_function=copy2) 方法用于递归移动文件或目录(包括其所有内容)。

参数说明:

  • src:要移动的源文件或目录的路径。
  • dst:指定的目标路径。这可以是一个目录或新文件。
  • copy_function:用于在copytree内部处理文件复制的可调用函数。默认值为shutil.copy2()。如果要指定自定义复制功能,则可以提供新的copy_function

shutil.move()在将文件或目录移动到新目录时不会更改文件或目录的名称或路径。另外请注意,如果该文件或目录已存在于新位置,则会被覆盖。

2. 例子

下面是shutil.move()的几个例子,让我们一起来看一下:

2.1 移动文件

以下是将文件从/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)
2.2 移动目录

以下示例将/tmp/old_dir目录及其所有内容移动到/tmp/new_dir目录内:

import shutil

# 移动目录及其内容
shutil.move('/tmp/old_dir', '/tmp/new_dir')
2.3 使用自定义复制操作

您可以使用自定义操作来复制/覆盖文件,我们可以通过将自定义复制函数传递给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)
3. 结论

通过本文,我们已经了解了shutil.move()方法。它提供了一种快速轻松地将文件及其内容移动到另一个目录的方法,并开放了许多自定义选项,以满足各种需求。