当前位置: 首页 > news >正文

python shutil

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# shutil 高级的文件、文件夹、压缩包处理模块
import shutil

#1.copyfileobj(源文件,目标文件) 将文件内容复制到另一个文件

#shutil.copyfileobj(open('config.log','r'),open('pic.json','a'))

#2.copyfile(源文件,目标文件) 复制文件,如果没有目标文件则创建一份,有,清除后复制内容

#shutil.copyfile('zp.xml','write1Xml.xml')

#3.copy(源文件,目标文件) 复制文件和状态信息
shutil.copy('zp.xml','w1.xml')
#4.copymode(源文件,目标文件) 仅复制权限。内容、组、用户均不变 (前提是dst文件存在,不然报错)
#5.copytree(源文件夹, 目标文件夹, 忽略的文件类型) 递归的去拷贝文件夹(前提是目标文件夹不存在)

#shutil.copytree('D:/Python/mypy/basic','D:/Python/mypy/mm',ignore=shutil.ignore_patterns('*.py'))
# 6.rmtree(path[, ignore_errors[, onerror]]) 递归的去删除文件

#7.move(源文件夹, 目标文件夹) 递归的去移动文件,它类似mv命令,其实就是重命名

#----------------------------------------------------------------------------------------
#操作压缩包
# make_archive(base_name, format,...)
# base_name: 压缩包的文件名,也可以是压缩包的路径。
# 只是文件名时,则保存至当前目录,否则保存至指定路径
# format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
# root_dir: 要压缩的文件夹路径(默认当前目录)
# owner: 用户,默认当前用户
# group: 组,默认当前组
# logger: 用于记录日志,通常是logging.Logger对象

#shutil.make_archive('basic','zip',root_dir='D:/Python/mypy')

# 两种操作压缩包的方式:zipfile和tarfile
import zipfile

##将某个文件压缩进已经存在的压缩包里
# zi = zipfile.ZipFile('D:/Python/mypy/hh.zip','w')
# zi.write('D:/Python/mypy/Hello World.py')
# zi.write('D:/Python/mypy/basic/blog.xml')
# zi.close()

##解压,会解压到当前文件目录下
# zz = zipfile.ZipFile('D:/Python/mypy/hh.zip','r')
# zz.extractall()
# zz.close()

import tarfile
# 压缩
# tar = tarfile.open('D:/Python/mypy/hh.zip','w')
# tar.add('D:/Python/mypy/basic/zp.xml',arcname='zb.xml')#arcname是在压缩包中名称
# tar.close()

##解压
tt = tarfile.open('D:/Python/mypy/hh.zip','r')
tt.extractall('D:/www')#解压到的位置
tt.close()

转载于:https://www.cnblogs.com/wuxinyan/p/8886320.html

相关文章:

  • Git 使用笔记
  • 数值实验-高斯消元LU分解
  • JSONP的跨域原理
  • Spring Boot 部署与服务配置
  • FormData的使用及input文件上传
  • 工业强基 - 头条新闻
  • CPU和内存 程序(线程)关系
  • 双循环递归匹配路由表
  • editplus 注册码
  • 在窗体中把DataGridView中的数据导出Excel
  • Linux学习笔记4月19日任务
  • 《Linux学习并不难》用户管理(1):Linux用户账户分类
  • Java-JUC(八):使用wait,notify|notifyAll完成生产者消费者通信,虚假唤醒(Spurious Wakeups)问题出现场景,及问题解决方案。...
  • 最简单的curl扒网页
  • 如何在微信小程序中使用async/await
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • DataBase in Android
  • JavaScript HTML DOM
  • Java新版本的开发已正式进入轨道,版本号18.3
  • JAVA之继承和多态
  • Redis字符串类型内部编码剖析
  • Vue 2.3、2.4 知识点小结
  • 包装类对象
  • 程序员最讨厌的9句话,你可有补充?
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 通过几道题目学习二叉搜索树
  • 译自由幺半群
  • 原生 js 实现移动端 Touch 滑动反弹
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • No resource identifier found for attribute,RxJava之zip操作符
  • Hibernate主键生成策略及选择
  • 如何正确理解,内页权重高于首页?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • (2)Java 简介
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (floyd+补集) poj 3275
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (四) 虚拟摄像头vivi体验
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)socket Aio demo
  • (转)甲方乙方——赵民谈找工作
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .form文件_SSM框架文件上传篇
  • .Net - 类的介绍
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net 调用php,php 调用.net com组件 --
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NetCore 如何动态路由