sys模块:

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout.write('please:') #标准输出 , 引出进度条的例子, 注,在py3上不行,可以用print代替
val = sys.stdin.readline()[:-1] #标准输入
sys.getrecursionlimit() #获取最大递归层数
sys.setrecursionlimit(1200) #设置最大递归层数
sys.getdefaultencoding() #获取解释器默认编码
sys.getfilesystemencoding #获取内存数据存到文件里的默认编码

shutil 模块:

高级的 文件、文件夹、压缩包 处理模块

shutil.copyfileobj(fsrc, fdst[, length])
将文件内容拷贝到另一个文件中

import shutil

f1 = open("hello.py",'r')
f2 = open("hello_new.py",'w') shutil.copyfileobj(f1,f2)

shutil.copyfile(src, dst)
拷贝文件

shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在
shutil.copyfile("D:\编辑的文本\\44.py","F:\\44.py")

shutil.copymode(src, dst)
仅拷贝权限。内容、组、用户均不变

shutil.copymode('f1.log', 'f2.log') #目标文件必须存在

shutil.copystat(src, dst)
仅拷贝状态的信息,包括:mode bits, atime, mtime, flags

shutil.copystat('f1.log', 'f2.log') #目标文件必须存在

shutil.copy(src, dst)
拷贝文件和权限

import shutil
shutil.copy('f1.log', 'f2.log')

shutil.copy2(src, dst)
拷贝文件和状态信息

import shutil
shutil.copy2('f1.log', 'f2.log')

shutil.ignore_patterns(*patterns)
shutil.copytree(src, dst, symlinks=False, ignore=None)
递归的去拷贝文件夹

import shutil
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除

shutil.rmtree(path[, ignore_errors[, onerror]])
递归的去删除文件

import shutil
shutil.rmtree('folder1')

shutil.move(src, dst)
递归的去移动文件,它类似mv命令,其实就是重命名。

import shutil
shutil.move('folder1', 'folder3')

shutil.make_archive(base_name, format,...)
创建压缩包并返回文件路径,例如:zip、tar
创建压缩包并返回文件路径,例如:zip、tar

  • base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,

如 data_bak =>保存至当前路径
如:/tmp/data_bak =>保存至/tmp/

  • format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
  • root_dir: 要压缩的文件夹路径(默认当前目录)
  • owner: 用户,默认当前用户
  • group: 组,默认当前组
  • logger: 用于记录日志,通常是logging.Logger对象
#将 /data 下的文件打包放置当前程序目录
import shutil
ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data') #将 /data下的文件打包放置 /tmp/目录
import shutil
ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')

shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:
zipfile压缩&解压缩

import zipfile

# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close() # 解压
z = zipfile.ZipFile('laxi.zip', 'r')
z.extractall(path='.')
z.close()

tarfile压缩&解压缩

import tarfile

# 压缩
>>> t=tarfile.open('/tmp/egon.tar','w')
>>> t.add('/test1/a.py',arcname='a.bak')
>>> t.add('/test1/b.py',arcname='b.bak')
>>> t.close() # 解压
>>> t=tarfile.open('/tmp/egon.tar','r')
>>> t.extractall('/egon')
>>> t.close()

最新文章

  1. jexus5.8.2 linux x64专业版 配置https
  2. Oracle数据库迁移
  3. 关于学习JavaScript 的 高三编程 一些心得
  4. 【java基础】 合并两个类型相同的list
  5. xsocks 64位平台下编译问题小记
  6. Angular 2.0 从0到1:Rx--隐藏在Angular 2.x中利剑
  7. c#文件转化byte数组
  8. 微信小程序开发之大坑记之post请求
  9. c# 搭建服务端 传输协议(2)
  10. Linux下并发网络设计之I/O复用
  11. Java学习之DAO设计模式
  12. CloseHandle 函数--关闭一个句柄
  13. MySQL主从失败 错误Got fatal error 1236解决方法
  14. 【HotSpot】jps命令行详解
  15. Vim修炼秘籍之语法篇
  16. Web API之基于H5客户端分段上传大文件
  17. C++版 - 剑指offer面试题38:数字在已排序数组中出现的次数
  18. Java注解开发与应用案例
  19. CAT Caterpillar ET is really a exceptional obd2 solution
  20. WSL(Windows Subsystem for Linux) 适用于Linux的Windows子系统

热门文章

  1. dockerfile基础命令
  2. Nodejs学习笔记(十三)—PM2
  3. HihoCoder - 1478 水陆距离
  4. 【LeetCode题解】231_2的幂(Power-of-Two)
  5. SQLAlchemy使用说明之ORM
  6. Node.js函数
  7. Linq in条件查询
  8. C# UML类图及类之间的几种关系
  9. JAVA核心编程教学
  10. [PHP] 深入理解PHP内核:变量及数据类型