且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python3下不要版本号批量编译.pyc文件

更新时间:2022-10-04 17:49:49

code say:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#encoding=utf-8
#author: walker
#date: 2016-06-28
#summary: 编译当前文件夹下所有.py文件
 
import os, sys, shutil
import py_compile
 
cur_dir_fullpath = os.path.dirname(os.path.abspath(__file__))
 
#清空目录
def ClearDir(dir):
    print('ClearDir ' + dir + '...')
      
    for entry in os.scandir(dir):
        if entry.name.startswith('.'):
            continue
        if  entry.is_file():   
            os.remove(entry.path)    #删除文件
        else:                  
            shutil.rmtree(entry.path)    #删除目录
             
#编译当前文件夹下所有.py文件
def WalkerCompile():
    dstDir = os.path.join(cur_dir_fullpath, 'walker_compile')
    if os.path.exists(dstDir): #如果存在,清空
        ClearDir(dstDir)
    else:                       #如果不存在,创建
        os.mkdir(dstDir)      
 
    for filename in os.listdir(cur_dir_fullpath):
        if not filename.endswith('.py'):
            continue
        srcFile = os.path.join(cur_dir_fullpath, filename)
        if srcFile == os.path.abspath(__file__): #自身
            continue
        dstFile = os.path.join(dstDir, filename + 'c')
        print(srcFile + ' --> ' + dstFile)
        py_compile.compile(srcFile, cfile=dstFile)
 
if __name__ == "__main__":
    WalkerCompile()


相关阅读:

1、py_compile 

2、compileall — Byte-compile Python libraries

3、PEP 3147 -- PYC Repository Directories

4、关于Python的编译


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1793685如需转载请自行联系原作者


RQSLT