python批量编译压缩打包实现

需求:将py文件批量编译,编译后删除py文件并压缩为zip文件,最后保留zip文件,其余文件及文件夹都删除。

D:\pro-compile
  MPV1
  TMMV1
  ...
D:\pro-compile\MPV1
  MPV1
  __init__.py
  MPV1.xml
  ...
D:\pro-compile\MPV1\MPV1
  Item01.py
  Item02.py
  Item03.py
  Item04.py
  ...

~~~~~~~执行后~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

D:\pro-compile
  MPV1 .zip
  TMMV1.zip
  ...

~~~~~~~实现代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# -*- coding: utf-8 -*-

import compileall
import shutil
import os.path
import stat
import re

def Compile(dir):
  compileall.compile_dir(dir)

def DeletePy(dir):
  regexp = r”\.py$”
  regexpObj = re.compile(regexp,re.M)
  for parent,dirnames,filenames in os.walk(dir):
    for file in filenames:
      if regexpObj.search(file):
        os.remove(os.path.join(parent,file))

def ZipPY(dir,rootdir):
  for parent,dirnames,filenames in os.walk(dir):
    for file in filenames:
      if file == “__init__.pyc”:
        #print(os.getcwd())
         os.chdir(parent)
         target = rootdir + “\\” + dirnames[0] + “.zip”
         source = []
         source += dirnames
         source += filenames
         zipCmd = ‘”C:\\Program Files (x86)\\WinRAR\\Rar.exe” a %s %s’ %(target,” “.join(source))
         os.system(zipCmd)
         return “success zip”

def Rmdirs(dir,rootdir):
   os.chdir(rootdir)
   if os.path.isdir(dir):
     print(‘delete ‘ + os.path.join(rootdir,dir))
     shutil.rmtree(os.path.join(rootdir,dir), True)

def main(*rootdir):
   if not rootdir or rootdir[0].strip() == “”:
     rootdir = ‘D:\\PM-compile’
  for parent,dirnames,filenames in os.walk(rootdir):
    for dir in dirnames:
      dir = os.path.join(parent,dir)
      Compile(dir)
      print ”.join((dir,’complete compile-‘))
      #path = ”.join((dir,’complete compile-‘))
        DeletePy(dir)
        print(”.join(‘complete delete .py files-‘))
          ZipPY(dir, rootdir)
        print(”.join(‘complete zip-‘))
          Rmdirs(dir,rootdir)
                 print(dir.join(‘complete delete dir-‘))

main(‘D:\\PM-compile’)

 

 

转载于:https://www.cnblogs.com/linux-python/p/compile_zip_python.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值