1. shutil 简介
shutil是Shell Utilities的简写,它提供了大量的文件和目录的高级操作。特别针对文件、目录的拷贝和删除,主要功能为目录和文件操作以及压缩操作。
2. 常用的函数如下
函数 | 说明 |
---|---|
shutil.copyfile( src, dst) | 从源src复制到dst中去。如果当前的dst已存在的话就会被覆盖掉,src 和 dst 都只能是文件 |
shutil.move( src, dst) | 移动文件或重命名 |
shutil.copymode( src, dst) | 只是会复制其权限其他的东西是不会被复制的 |
shutil.copystat( src, dst) | 复制权限、最后访问时间、最后修改时间 |
shutil.copy( src, dst) | 复制一个文件到一个文件或一个目录 |
shutil.copy2( src, dst) | 在copy上的基础上再复制文件、访问时间与修改时间 |
shutil.rmtree(path[, ignore_errors[, onerror]]) | 递归删除一个目录以及目录内的所有内容 |
shutil.copyfileobj(fsrc, fdst[, length]) | copyfileobj方法只会拷贝文件内容(fsrc为文件打开内容,fdst 为写文件) |
3. 使用示例
shutil.copytree( olddir, newdir, True/Flase)
说明:把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)
其中常用参数为:
base_name: 压缩打包后的文件名或者路径名
format: 压缩或者打包格式 “zip”, “tar”, "bztar"or “gztar”
root_dir : 将哪个目录或者文件打包(也就是源文件)
import shutil
f1 = open("1.txt", mode='r')
f2 = open("2.txt", mode='w')
shutil.copyfileobj(f1, f2)
shutil.make_archive("shutil_archive_test", "zip", "D:\新建文件夹 (2)")