Python标准库系列之zipfile模块

本系列文章来源:<a>https://blog.ansheng.me/article/python-full-stack-way</a>
官方文档:https://docs.python.org/3.5/library/zipfile.html

打包

In [1]: import   zipfile 

In [2]: import  os 

In [3]: ls -l 
total 4
-rw-r--r-- 1 root root 4 Jun  4 21:05 file.txt
# 以w的方式的时候是打开文件并清空,如果是a方式那么就是追加文件了
In [4]: z = zipfile.ZipFile('zip_file.zip','w') 
# 把文件放入压缩包
In [5]: z.write('file.txt')
# 也可以是一个目录
In [6]: z.write('/tmp/python/')
# 关闭文件
In [7]: z.close()
# 查看已经打包的文件
In [8]: ls -l 
total 8
-rw-r--r-- 1 root root   4 Jun  4 21:05 file.txt
-rw-r--r-- 1 root root 216 Jun  4 21:07 zip_file.zip

追加一个文件

# 追加其实就是把模式w换成a
>>> z = zipfile.ZipFile('zip_file.zip', 'a')
>>> z.write('/tmp/folder/file.txt')         
# 关闭文件
>>> z.close()
# 查看包内的文件
>>> z.namelist()
['tmp/folder/sc.pyc', 'tmp/folder/dir/', 'tmp/folder/file.txt']

查看压缩包内的所有文件

>>> z.namelist()
['tmp/folder/sc.pyc', 'tmp/folder/dir/', 'tmp/folder/file.txt']

解压

>>> z = zipfile.ZipFile('zip_file.zip', 'r')
# extractall把所有的文件解压到当前目录
>>> z.extractall()
>>> os.system("tree tmp/")         
tmp/
└── folder
    ├── dir
    └── sc.pyc

2 directories, 1 file
0

解压一个单独的文件

>>> z = zipfile.ZipFile('zip_file.zip', 'r')
# 返回文件所在路径
>>> z.extract("tmp/folder/sc.pyc")          
'/home/ansheng/tmp/folder/sc.pyc'
>>> os.system("tree tmp/")                  
tmp/
└── folder
    └── sc.pyc

1 directory, 1 file
0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,568评论 2 45
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,579评论 6 427
  • 十点,街上还是人来人往。 我喝过了一杯长岛冰茶,微醺。 打开微信,看了一遍又一遍的朋友圈。 我打给一个朋友,暂时无...
    爱吃香蕉的兔子阅读 276评论 0 0
  • 早上,她坐在窗前,端着一杯咖啡,有些心神不宁。她皱着眉,在想昨晚的梦,这梦让她很不愉快,微微感觉到内心又抑压的愤怒...
    默梓阅读 453评论 0 48
  • 每个人都有故事,一个个的民间小故事,会聚成一本短篇小说,夹子是一个天不怕地不怕的女孩,她会带领我们一起去探寻一...
    泠念蝶阅读 288评论 0 0