# shutil

# 目录、文件操作

使用前需要先看其描述信息,可能有的函数的实际结果和Unix系统上类似的操作结果不一致。

import shutil

# Copy src to dst. (cp src dst)
shutil.copy(src, dst)

# Copy files, but preserve metadata (cp -p src dst)
shutil.copy2(src, dst)

# Copy directory tree (cp -R src dst)
shutil.copytree(src, dst)

# Move src to dst (mv src dst)
shutil.move(src, dst)

# 解压缩文件

shutil​模块有两个函数-make_archive()​和unpack_archive()​可以用于创建和解压常见格式的归档文件。

这个函数的基本语法如下:

shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=False, dry_run=False, owner=None, group=None, logger=None)

具体来说,shutil.make_archive()​ 函数中的参数解释如下 :

  • base_name​ : 指定归档文件的文件名或文件路径,但不包括压缩格式的扩展名。
  • format​ : 指定压缩格式,当前支持 'zip', 'tar', 'gztar', 'bztar'。
  • root_dir​ : 指定压缩文件的根目录,如果不指定则压缩整个目录树。
  • base_dir​ : 指定压缩文件的相对路径,如果不指定则压缩文件使用绝对路径。
  • verbose​ : 如果设置为 True​,则在压缩过程中输出一些信息作为进度提示,否则不输出。
  • dry_run​ : 如果设置为 True​,则不会创建任何文件,仅模拟操作,供调试使用。
  • owner​ 和 group​ : 如果指定了这些参数,则相应的用户和组信息将应用于压缩文件中的文件。
  • logger​ : 打印归档日志信息的可调用对象。

因此,shutil.make_archive('py33','zip','Python-3.3.0')​ 的作用是将路径为 Python-3.3.0​ 的目录以 Zip 格式压缩到文件名为 py33.zip​ 的文件中。

>>> import shutil
>>> shutil.unpack_archive('Python-3.3.0.tgz')

>>> shutil.make_archive('py33','zip','Python-3.3.0')
'/Users/beazley/Downloads/py33.zip'
>>> shutil.get_archive_formats()		# 获取全部支持的文件格式