2

cppy

 3 years ago
source link: https://sineatos.github.io/open-source/cppy/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

cppy

June 07, 2018

开源项目, 工具

介绍一下我之前写的一个使用python3编写的小工具。

地址: https://gitee.com/sineatos/cppy

主要功能是将指定路径中目录里面的所有py文件编译成pyc文件,然后提取到指定目录中。 这个工具是我之前做一个项目时写的,当时用Django写了一个服务器后台,然后这个项目只给.pyc文件。 由于整个项目文件颇多,想要逐个逐个文件编译成.pyc以后提取出来还是比较繁琐的,所以就打算做个小工具完成这些工作了。 当然在后期为了满足实际使用需要,我又加了一些可选功能进去。

这个工具只有一个脚本,且 没有用任何第三方库,除了用到Python常用的re,os,time库以外,还使用了compileall编译.py文件;使用argparse做CLI的参数解析;使用shutil做文件操作。 只需要把脚本复制下来执行即可

总的来说还是一个不错的工具。

具体参数说明如下:

usage: cppy.py [-h] [-a] [-d DEST] [-q] [-f] src

必填参数:
  src                   源代码的目录路径

选填参数:
  -h, --help            显示帮助文档
  -a, --all_file        是否将pyc文件以外的非py文件复制到生成的目标目录
  -d DEST, --dest DEST  指定目标目录,默认为./cppy_output/
  -q, --quiet           安静模式,是否只输出错误结果
  -f, --force           是否重新编译所有的py文件,即使对应的pyc文件已经存在
  -o ORIGIN_LIST, --origin_list ORIGIN_LIST
                        复制选中的py文件到目标目录中,支持正则表达式,输入为一个列表,以分号(;)隔开,例如:-o reg_path1;reg_path2;...
  -e EXCLUDE_LIST, --exclude_list EXCLUDE_LIST
                        将文件名或者目录名匹配列表中的正则表达式的文件和路径忽略,如果这些文件同样附和origin_list的要求,同样忽略,正则表达式列表的格式为以分号(;)隔开,例如:-e reg_path1;reg_path2;...
  -r, --remain_dest     保留原来在dest目录中的所有数据,默认为不保留
  -n, --nohiding        是否复制和编译隐藏的数据(以'.'开头命名的文件和目录),默认为不复制和编译这些隐藏数据
  -c, --clean			是否在编译之前删除源目录中所有的__pycache__中的所有pyc文件

注意事项: 如果当前正在浏览目标目录,那么如果发生删除操作,可能会终止编译过程,所以最好还是在编译的时候不要浏览目标目录里面的任何东西。

</div


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK