1. shutil模块简介
shutil模块是Python标准库中的一个模块,提供了一系列用于对文件和目录进行操作的函数。它是"shell utility"的缩写,用于处理文件和目录的高级操作,比如复制、移动、重命名、删除等操作。shutil模块提供了一种更高级、更简洁的方式来处理文件和目录,比起使用os模块的底层函数来说,更加方便和易于理解。
2. shutil模块的安装
shutil模块是Python标准库中的一部分,所以无需单独安装,可以直接使用。
3. shutil模块的常用函数
3.1 复制文件
shutil模块提供了两个函数用于复制文件:copyfile(src, dst)和copy(src, dst)。copyfile函数将src文件复制到dst文件中,保持原有的权限和时间戳。copy函数将src文件复制到dst或者目录dst中,如果dst是一个目录,则复制src文件到该目录,保持原有的权限和时间戳。
示例代码:
import shutil
# 复制文件
shutil.copyfile('source.txt', 'destination.txt')
3.2 复制目录
shutil模块提供了copytree(src, dst)函数用于复制整个目录。该函数将src目录以及其下的所有文件和子目录复制到dst目录中。
示例代码:
import shutil
# 复制目录
shutil.copytree('source_dir', 'destination_dir')
3.3 移动文件或目录
shutil模块提供了两个函数用于移动文件或目录:move(src, dst)和move2(src, dst)。move函数将src文件或目录移动到dst位置,如果dst是一个目录,则将src移动到该目录中。move2函数将src移动到dst位置,并返回目标路径。
示例代码:
import shutil
# 移动文件或目录
shutil.move('source.txt', 'destination.txt')
3.4 重命名文件或目录
shutil模块提供了一个函数move(src, dst)用于重命名文件或目录。该函数将src重命名为dst。
示例代码:
import shutil
# 重命名文件或目录
shutil.move('old_name.txt', 'new_name.txt')
3.5 删除文件或目录
shutil模块提供了两个函数用于删除文件或目录:remove(path)和rmtree(path)。remove函数用于删除指定的文件,rmtree函数用于删除指定的目录以及其下的所有文件和子目录。
示例代码:
import shutil
# 删除文件
shutil.remove('filename.txt')
# 删除目录
shutil.rmtree('directory')
3.6 文件压缩
shutil模块还提供了一些函数用于文件的压缩和解压缩操作。它支持压缩格式如下:zip、tar、gztar、bztar、xztar。
3.7 压缩文件
shutil模块提供了一个函数make_archive(base_name, format, root_dir=None, base_dir=None)用于压缩文件。参数base_name是压缩后的文件名(不包括后缀),参数format是压缩文件的格式,可以是"zip"、"tar"、"gztar"、"bztar"、"xztar"。root_dir是被压缩的根目录,base_dir是被压缩文件的相对路径。
示例代码:
import shutil
# 压缩文件
shutil.make_archive('archive', 'zip', root_dir='source_dir')
3.8 解压文件
shutil模块提供了一个函数unpack_archive(filename, extract_dir=None)用于解压缩文件。参数filename是要解压缩的文件,extract_dir是解压缩后的目录,默认为当前目录。
示例代码:
import shutil
# 解压文件
shutil.unpack_archive('archive.zip', extract_dir='destination_dir')
4. 总结
shutil模块是Python标准库中一个非常实用的模块,提供了一系列用于文件和目录操作的函数。通过使用shutil模块,我们可以更方便、更简洁地处理文件和目录的复制、移动、重命名、删除、压缩、解压缩等操作。掌握和使用shutil模块,可以大大提高我们处理文件和目录的效率。