程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

python在已有zip文件中添加新文件

发布于2019-08-20 10:16     阅读(873)     评论(0)     点赞(11)     收藏(2)


       当前一个项目需要用到在已存在的zip文件中add进去一个新文件,身为python新兵的我甚是惶恐,对python对zipfile的操作也不甚了解,然后开始在各种博客中求助,然而很让人失望,太多的雷同贴,都是讲zipfile的方法,陈词滥调,乏味枯燥,我更喜欢一些实例,自己可以参考尝试,这样再去改造,使用,那就信手拈来了,最后没办法还是自己摸索吧,结果也是可想而知,被暴击了,还好,最后参考了Android原生OTA升级包中的zip制作方法,看到有此类问题解处理,尝试后,效果很好,果断记录下来,防止后期再去爬坑,身为新兵,希望大家指点迷津,提出更优美的处理方式。

<------------------------------------------------------------------------华丽的分割线------------------------------------------------------------------------->

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import sys
  4. import os
  5. import zipfile
  6. #压缩包中的文件名,为新创建文件
  7. zipFileName = "aa/bb/cc.txt"
  8. def add_file_into_package(file, output_zip):
  9. print "##file is " + file
  10. print "##output_zip is " + output_zip
  11. #check the version file
  12. ziphandler = zipfile.ZipFile(output_zip, "a", compression=zipfile.ZIP_DEFLATED)
  13. f = open(file, "r")
  14. zinfo = zipfile.ZipInfo(zipFileName, date_time=(2019, 07, 0, 0, 0, 0))
  15. zinfo.compress_type = ziphandler.compression
  16. zinfo.external_attr = 0644 << 16
  17. ziphandler.writestr(zinfo, f.read())
  18. f.close()
  19. ziphandler.close()
  20. print "add success."
  21. def main(argv):
  22. if len(argv) != 2:
  23. print "len(argv) is ", len(argv)
  24. sys.exit(1)
  25. if os.path.isfile(argv[0]) is False:
  26. print "the " + argv[0] + " origin file is not exist"
  27. return
  28. if os.path.isfile(argv[1]) is False:
  29. print "the " + argv[1] + " zipfile is not exist"
  30. return
  31. add_file_into_package(argv[0], argv[1])
  32. return
  33. if __name__ == '__main__':
  34. try:
  35. main(sys.argv[1:])
  36. except ZeroDivisionError, e:
  37. print
  38. print " ERROR: %s" % (e,)
  39. print
  40. sys.exit(1)

test压缩包目录结构

执行命令

python my_test.py cc.txt my_test.zip

执行命令后目录接口

可以看到cc.txt新增到了压缩文件中,这里是在代码 zipFileName中指定的,如果需要动态变更,还需要继续优化代码

完结!!!

 



所属网站分类: 技术文章 > 博客

作者:搞笑

链接:https://www.pythonheidong.com/blog/article/48936/8124ca804240fda686c8/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)