python -- sys和shutil模块

sys 模块

  • sys.argv, 第一个元素返回此py本身的路径,返回list类型。一般结合着后接参数一起使用。
  • sys.exit(n),退出程序,正常退出时exit(0),一般用在逻辑判断分支上。
  • sys.version,获取python解释程序的版本信息
  • sys.maxsize,最大int值
  • sys.path,返回模块的搜索路径,初始化时使用PythonPath环境变量的值
  • sys.platform,返回操作系统平台名称,win(x64)-->win32
  • sys.stout.write('please:'),sys的标准输出

shutil模块

shutill模块是,高级的文件、文件夹、压缩包处理模块。

  • shutil.copyfileobj(原文件,目标文件),copy文件内容
import shutil

f_1 = open('info', encoding='utf-8')
f_2 = open('info2', 'w', encoding='utf-8')

shutil.copyfileobj(f_1, f_2)
import shutil

f_1 = open('info', encoding='utf-8')
f_2 = open('info2', 'w', encoding='utf-8')

shutil.copyfileobj(f_1, f_2)
  • shutil.copyfile(原文件,目标文件),copy文件内容,比shutil.copyfileobj()更简洁
import shutil

shutil.copyfile('info', 'info3')
import shutil

shutil.copyfile('info', 'info3')
  • shutil.copymode(源文件,目标文件),仅copy权限。内容、组、用户均不变。
  • shutil.copystat(源文件,目标文件),copy所有状态信息,包括:mode bits,atime最后访问时间,mtime最后修改时间,flags,不会复制文件
  • shutil.copy(源文件,目标文件),copy文件或目录和权限
  • shutil.copy2(源文件,目标文件),copy文件或目录和最后访问时间与修改时间
  • shutil.copytree(源文件,目标文件),递归地copy文件,包含目录
  • shutil.rmtree(需要删除的文件),递归的删除文件
  • shutil.move(原文件,目标位置),递归的移动文件
  • shutil.make_archive(base_name, format,...)创建压缩包并返回文件路径,ep:zip;tar
  • base_name: 压缩包的文件名,也可以使压缩包的路径。如果只是文件名时,则保存至当前目录,不然就保存到指定路径。
  • www ---> 保存至当前路径
  • /users/tools/www ---> 保存至/users/tools/
  • format: 压缩包种类: zip(压缩打包), tar(只打包),bztar(压缩打包),gztar(压缩打包)[bzip压缩比要比gz要高5%左右,效果更好。但是另一方面,对同一个文件压缩,bzip压缩占用了更多的cpu和时间]
  • root_dir: 要压缩的文件夹路径(默认是当前目录)
  • owner: 用户,默认是当前用户
  • group:组,默认是当前组
  • logger:用于记录日志,通常是logging.logger对象
import shutil

shutil.make_archive('c://001//test', 'zip', root_dir='C://360驱动大师目录//')
import shutil

shutil.make_archive('c://001//test', 'zip', root_dir='C://360驱动大师目录//')

shutil.make_archive其实是调用ZipFile和TarFile两个模块来进行。

import zipfile

# 压缩文件,用zipfile模块可以实现单个文件压缩
z = zipfile.ZipFile('test.zip', 'w')
z.write('info')
z.write('info2')
z.close()

# 解压文件
e = zipfile.ZipFile('test.zip', 'r')
e.extractall()
e.close()
import zipfile

# 压缩文件,用zipfile模块可以实现单个文件压缩
z = zipfile.ZipFile('test.zip', 'w')
z.write('info')
z.write('info2')
z.close()

# 解压文件
e = zipfile.ZipFile('test.zip', 'r')
e.extractall()
e.close()