shutil复制粘贴和压缩
shutil复制粘贴和压缩
shutil
高级的文件、文件夹、压缩包处理模块
@1)、将文件内容拷贝到另一个文件中
import shutil
shutil.copyfileobj(open("1.txt",'r'), open('2.txt','w'))
@2)、拷贝文件
import shutil
shutil.copyfile('f1.log','f2.log')
@3)、仅拷贝权限。内容、组、用户不变
shutil.copymode('f1.log','f2.log')
@4)、拷贝状态的信息,包括:mode bits ,atime(文件防伪时间), mtime, flags
shutil.copystat('f1.log','f2.log')
@5)、 拷贝文件和权限
shutil.copy(src,dst)
import shutil
shutil.copy('f1.log', 'f2.log')
@6)、拷贝文件和状态信息
import shutil
shutil.copy2('f1.log', 'f2.log')
@7)、递归的去拷贝文件夹
shutil.ignore_patterns(*patterns)
shutil.copytree(src,dst, symlinks=False, ignoer=None)
案例:
import shutil
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns("*.py", "tmp*")) #(ignore忽略)
@8)、递归的去删除文件
shutil.retree(path[,ignore_errors[,onerror]])
import shutil
shutil.retree('folder1')
@9)、递归的去移动文件,它类似mv命令,其实就是重命令
import shutil
shutil.move('folder1', 'folder3')
压缩和解压
@10)、shutil.make_archive(base_name, format,...)
创建压缩包并返回文件路径, 例如:zip, tar
a]· base_name :压缩包的文件名,也可以是压缩包路径。只是文件名时,则保持至当前目录,否则保存至指定路径
如:www -->保存至当前路径
如:/Users/local/www -->保存至/users/local
b]. format:压缩包种类,"zip,tar,bztar,gztar"
c]. root_dir :要压缩的文件夹路径(默认当前目录)
d]. owner: 用户,默认当前用户
d]. group:组,默认当前组
e]. logger:用于记录日志,通常是logging.Logger对象
案例一:
压缩
#将/usr/local/lownloads/test下的文件打包放置当前程序目录
import shutil
ret = shutil.make_archive("www", 'gztar', root_dir = "/usr/local/downloads/test")
#将/usr/local/downsload/test 下的文件打包方放置在/usr/loca/目录
import shutil
ret = shutil.make_archive("/usr/local/www", 'gztar', root_dir='usr/local/downsload/test')
f].shutil对压缩包的处理是调用ZipFile和TarFile两个模块来进行的,详细:
import zipfile
#压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close()
#解压
z = zipfile.ZipFile('lai.zip','r')
z.extractall()
z.close()
import tarfile
#压缩
tar = tarfile.open('your.tar','w')
tar.add('/usr/local/pycharm/bbs2.log', arcname='bbs2.log')
tar.add('/usr/local/pycharm/cmd.log', arcname='cmd.log')
tar.close()
#解压
tar = tarfile.open('your.tar', 'r')
tar.extractall() #可设置解压地址
tar.close()
shutil复制粘贴和压缩的更多相关文章
- Revealjs网页版PPT让你复制粘贴另类装逼,简洁优雅又低调,不懂编程也看过来
Revealjs网页版PPT让你复制粘贴另类装逼,简洁优雅又低调,不懂编程也看过来 要了解一个新知识我们可以从三个方面入手:是什么,有什么用,怎么用.下面我们就从这三个方面进行讲解Reveal.js噢 ...
- Android中的复制粘贴
Android中的复制粘贴 The Clipboard Framework 当使用clipboard framework时,把数据放在一个剪切对象(clip object)里,然后这个对象会放在系统的 ...
- 远程桌面时plsql的复制粘贴功能失效
解决办法:重新启动远程桌面上的rdpclip进程就可以复制粘贴了,但是每次重开远程桌面都会出现同样的问题.可以rdpclip这个设置成开机启动.
- 不注册COM在Richedit中使OLE支持复制粘贴
正常情况下在Richedit中使用OLE,如果需要OLE支持复制粘贴,那么这个OLE对象必须是已经注册的COM对象. 注册COM很简单,关键问题在于注册时需要管理员权限,这样一来,如果希望APP做成绿 ...
- ios textfield / textview长按复制粘贴中文显示
当我们在写应用时要复制粘贴文本框内容时,默认显示的文字为英文字体,可按如下步骤设置,显示中文:
- 复制粘贴出来的悲剧----spring实现文件下载和HttpStatus.CREATED
今天真是被自己的懒惰和复制粘贴给坑惨了... 网上有这么一个spring下载文件的最佳实践: @RequestMapping("download") public Response ...
- ZeroClipboard跨浏览器复制粘贴
<!DOCTYPE html> <html> <head> <title>ZeroClipboard跨浏览器复制粘贴</title> < ...
- ubuntu快捷复制粘贴
今天使用putty,纠结复制粘贴的时候,才发现 原来只要选中文本后,就可以中键粘贴 整个桌面环境可用,新技能啊以前居然不知道
- firefox浏览器不支持复制粘贴(linux)
在Linux主机下使用firefox在线编辑文章时,提示不支持复制粘贴选项,并给出了解决方法,记录一下 1.先找到本机firefox的配置文件的所在文件夹位置,不知道的请遵循以下步骤 点击菜单栏的帮助 ...
随机推荐
- 使用JS实现前端缓存
在前端浏览器中,有些数据(比如数据字典中的数据),可以在第一次请求的时候全部拿过来保存在js对象中,以后需要的时候就不用每次都去请求服务器了.对于那些大量使用数据字典来填充下拉框的页面,这种方法可以极 ...
- Oracle 中的分析函数
Oracle常用分析函数介绍(排名函数+窗口函数) 2014年11月30日 ⁄ 数据库 ⁄ 共 3903字 ⁄ 暂无评论 ⁄ 阅读 7,772 次 评级函数 常见评级函数如下: RANK():返回数据 ...
- WPF中监视DependencyProperty的变化
WPF中监视DependencyProperty的变化 周银辉 尽管一个类会提供很多事件,但有时候还是显得不够,比如说前两天我就以为WPF的ListBox控件会有ItemsSourceChange ...
- Android开发自学笔记(Android Studio) 目录
开发环境如下: 操作系统:Windows 10 Pro IDE:Android Studio 1.3.X 或更高版本 其它请参见文章说明. 1. 环境搭建 1.1 (番外)AndroidStudio常 ...
- 修改AssemblyInfo.cs自动生成版本号
一. 版本号自动生成方法 1.把 AssemblyInfo.cs文件中的[assembly:AssemblyVersion("1.0.0.0")]改成[assembly:Assem ...
- Web前端面试题目及答案汇总
HTML/CSS部分 1.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边 ...
- Android6.0动态申请权限
先直接看代码: public void onClick(View v){ onCallPermission(); } public void onCallPermission(){ if (Build ...
- Ubuntu 14 設定 遠端連線,讓別台電腦可以連線進來
Ubuntu 14 需 disable 加密,方可 遠端連線 此台電腦 xxx@xxx-ThinkPad-T460p:~$ gsettings set org.gnome.Vino require-e ...
- ajax(通过jQuery实现)
使用jQuery实现ajax相对来说方便一点,看w3cschool有几种实现的方法,我就总结一下自己以后会用到的几种方法 $.ajax方法: $.ajax方法里面有很多个参数可以使用,但我这里就写自己 ...
- Cocos2d-X3.0 刨根问底(四)----- 内存管理源码分析
本系列文章发表以来得到了很多朋友的关注,小鱼在这里谢谢大家对我的支持,我会继续努力的,最近更新慢了一点,因为我老婆流产了抽了很多时间来照顾她希望大家谅解,并在此预祝我老婆早日康复. 上一篇,我们完整的 ...