shutil 模块
shutil(或称为 shell 工具)模块中包含一些函数,让你在 Python 程序中复制、移动、改名和删除文件。要使用 shutil 的函数,首先需要 import shutil
。
shutil 模块提供了一些函数,用于复制文件和整个文件夹。
复制文件
调用 shutil.copy(source, destination)
,将路径 source
处的文件复制到路径 destination
处的文件夹(source
和 destination
都是字符串)。如果 destination
是一个文件名,它将作为被复制文件的新名字。该函数返回一个字符串,表示被复制文件的路径。
在交互式环境中输入以下代码,看看 shutil.copy()
的效果:
import shutil
shutil.copy('正心全栈编程.txt', './自动化办公课件')
shutil.copy('正心全栈编程.txt', './自动化办公课件/new_file.txt')
两种方式使用:
- 第二个参数写某个文件夹位置, 则复制到该文件夹下
- 第二个参数写某个文件路径, 复制到这个路径并且重命名
复制目录
shutil.copy() 将复制一个文件
shutil.copytree() 将复制整个文件夹,以及它包含的文件夹和文件。
调用 shutil.copytree(source, destination)
,将路径 source
处的文件夹,包括它的所有文件和子文件夹,复制到路径 destination
处的文件夹。source
和 destination
参数都是字符串。该函数返回一个字符串,是新复制的文件夹的路径。
在交互式环境中输入以下代码:
shutil.copytree('自动化办公课件', '自动化办公课件-备份')
shutil.copytree() 调用创建了一个新文件夹,名为 自动化办公课件-备份 ,其中的内容与原来的 自动化办公课件 文件夹一样。现在你已经备份了非常非常宝贵的 自动化办公课件 文件夹。
移动与改名
调用 shutil.move(source, destination)
,将路径 source
处的文件夹移动到路径 destination
,并返回新位置的绝对路径的字符串。
如果 destination
指向一个文件夹,source
文件将移动到 destination
中,并保持原来的文件名。例如,在交互式环境中输入以下代码:
import shutil
# shutil.move('要移动的文件/文件夹','要移动到的位置')
shutil.move('正心全栈编程.txt', '自动化办公课件/')
shutil.move('正心全栈编程.txt', '自动化办公课件/正心全栈编程2.txt' )
shutil.move('自动化办公课件', '自动化办公课件-备份/")
两种方式使用:
- 第二个参数写某个文件夹位置, 则移动到该文件夹下
- 第二个参数写某个文件路径, 移动到这个路径并且重命名
构成目的地的文件夹必须已经存在,否则 Python 会抛出异常。
删除文件和文件夹
利用 pathlib 模块中的函数,可以删除一个文件或一个空文件夹。但利用shutil模块,可以删除一个文件夹及其所有的内容。
- 调用 pathlib.Path.rmdir(path) 将删除 path 处的文件夹。该文件夹必须为空,其中没有任何文件和文件夹。
- 调用 shutil.rmtree(path) 将删除 path 处的文件夹,它包含的所有文件和文件夹都会被删除。