一、shutil

  1. 高级的 文件、文件夹、压缩包 处理模块
  2. shutil.copyfileobj(fsrc, fdst[, length])
  3. 将文件内容拷贝到另一个文件中
  4. import shutil
  5. shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))
  1. shutil.copyfile(src, dst)
  2. 拷贝文件
  3. shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在
  1. shutil.copymode(src, dst)
  2. 仅拷贝权限。内容、组、用户均不变
  3. shutil.copymode('f1.log', 'f2.log') #目标文件必须存在
  1. shutil.copystat(src, dst)
  2. 仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
  3. shutil.copystat('f1.log', 'f2.log') #目标文件必须存在
  1. shutil.copy(src, dst)
  2. 拷贝文件和权限
  3. import shutil
  4. shutil.copy('f1.log', 'f2.log')
  1. shutil.copy2(src, dst)
  2. 拷贝文件和状态信息
  3. import shutil
  4. shutil.copy2('f1.log', 'f2.log')
  1. shutil.ignore_patterns(*patterns)
  2. shutil.copytree(src, dst, symlinks=False, ignore=None)
  3. 递归的去拷贝文件夹
  4. import shutil
  5. shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除
  1. import shutil
  2. shutil.copytree('f1', 'f2', symlinks=True, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
  3. 通常的拷贝都把软连接拷贝成硬链接,即对待软连接来说,创建新的文件
  4. 拷贝软连接
  1. shutil.rmtree(path[, ignore_errors[, onerror]])
  2. 递归的去删除文件
  3. import shutil
  4. shutil.rmtree('folder1')
  1. shutil.move(src, dst)
  2. 递归的去移动文件,它类似mv命令,其实就是重命名。
  3. import shutil
  4. shutil.move('folder1', 'folder3')
  1. shutil.make_archive(base_name, format,...)
  2. 创建压缩包并返回文件路径,例如:ziptar
  3. 创建压缩包并返回文件路径,例如:ziptar
  4. base_name 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
  5. data_bak =>保存至当前路径
  6. 如:/tmp/data_bak =>保存至/tmp/
  7. format 压缩包种类,“zip”, tar”, bztar”,“gztar
  8. root_dir 要压缩的文件夹路径(默认当前目录)
  9. owner 用户,默认当前用户
  10. group 组,默认当前组
  11. logger 用于记录日志,通常是logging.Logger对象
  1. #将 /data 下的文件打包放置当前程序目录
  2. import shutil
  3. ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')
  4. #将 /data下的文件打包放置 /tmp/目录
  5. import shutil
  6. ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')
  1. shutil 对压缩包的处理是调用 ZipFile TarFile 两个模块来进行的,详细:
  1. import zipfile
  2. # 压缩
  3. z = zipfile.ZipFile('laxi.zip', 'w')
  4. z.write('a.log')
  5. z.write('data.data')
  6. z.close()
  7. # 解压
  8. z = zipfile.ZipFile('laxi.zip', 'r')
  9. z.extractall(path='.')
  10. z.close()
  11. zipfile压缩解压缩
  1. import tarfile
  2. # 压缩
  3. >>> t=tarfile.open('/tmp/egon.tar','w')
  4. >>> t.add('/test1/a.py',arcname='a.bak')
  5. >>> t.add('/test1/b.py',arcname='b.bak')
  6. >>> t.close()
  7. # 解压
  8. >>> t=tarfile.open('/tmp/egon.tar','r')
  9. >>> t.extractall('/egon')
  10. >>> t.close()
  11. tarfile压缩解压缩

python之shutil 模块的更多相关文章

  1. python之shutil模块详解

    shutil模块 -- --High-level file operations  高级的文件操作模块. os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如 ...

  2. python基础--shutil模块

    shutil模块提供了大量的文件的高级操作. 特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作.对单个文件的操作也可参见os模块. 注意 即便是更高级别的文件复制函数(shutil.cop ...

  3. python之shutil模块的使用

    shutil模块 shutil模块是一种高级的文件操作工具,其对文件的复制与删除操作非常强大,shutil 名字来源于 shell utilities,该模块拥有许多文件(夹)操作的功能,包括复制.移 ...

  4. python的shutil模块

    shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作 1.复制文件 def copy(src, dst): """Co ...

  5. python的shutil模块-文件的移动、复制、打包、压缩、解压等

    参考https://www.cnblogs.com/xiangsikai/p/7787101.html os模块提供了对目录或者文件的新建.删除.查看文件属性,还提供了对文件以及目录的路径操作,比如说 ...

  6. python学习shutil模块的文件压缩和解压用法

    shutil模块可以创建压缩包并返回文件路径,例如 zip,tar,下面详细其用法 base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存至当前目录,否则保存指定路径 data ...

  7. python(6)-shutil模块

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中: #源码 def copyfileobj(fsr ...

  8. Python之shutil模块(复制移动文件)

    用python实现将某代码文件复制/移动到指定路径下.场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tmp ...

  9. python中shutil模块的使用

    可以操作权限的处理文件模块:shutil # 基于路径的文件复制 import shutil shutil.copyfile("oldfile_path","newfil ...

  10. python中shutil模块

    shutil是对OS中文件操作的补充:移动.复制.打包.压缩.解压. 1.copy文件内容到另一个文件,可以copy指定大小的内容. shutil.copyfileobj(fsrc, fdst[, l ...

随机推荐

  1. PyQt学习随笔:ListView控件增加列表项

    ListView控件如果需要增加列表项,就是在对应数据存储中插入项,这又分两种情况,一种是已知列表数据存储,一种是未知数据存储.如果是未知数据存储,可以通过: ListView控件名.model() ...

  2. PyQt(Python+Qt)学习随笔:exit code 1073741845与槽函数所在对象不能定义同名实例方法问题

    最近做了几次测试,在PyQt中如果使用与槽函数同名的实例方法可能会导致不可控的错误. 案例1:如果两个信号映射到同名的槽函数,虽然参数不一样,但真正响应的槽函数是最后定义的槽函数,具体案例请见< ...

  3. Pentaho Report Designer 报表系统 - 入门详解

    目录 简介 安装与配置 环境要求 运行方式 使用教学 数据源配置与原始数据获取 报表布局设计与格式化 布局设计 模块结构 控件 示例 报表预览与发布 报表访问与获取 参考材料 简介 ​ Pentaho ...

  4. 用python讲解数据结构之树的遍历

    树的结构 树(tree)是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合 它具有以下的特点: ①每个节点有零个或多个子节点: ②没有父节点的节点称为根节点: ③ ...

  5. dataframe 检查缺失值

    s = df.isnull().any() #返回series形式,可以用enumerate打印s #true代表有空值 null_index = [] for i,j in enumerate(s) ...

  6. js原生方法reduce实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 图的遍历BFS

    图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...

  8. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)

    1. 主从复制解释   将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致. 2. 主从复制的作用 高可用 ...

  9. db2常用操作

    1. db2建立远程节点编目及删除 db2 catalog tcpip node nodeName remote remoteIp server remotePort db2 list node di ...

  10. [日常摸鱼]bzoj1001狼抓兔子-最大流最小割

    题意就是求最小割- 然后我们有这么一个定理(最大流-最小割定理 ): 任何一个网络图的最小割中边的容量之和等于图的最大流. (下面直接简称为最大流和最小割) 证明: 如果最大流>最小割,那把这些 ...