热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python删除注释_python删除源文件中的注释并编译

上线需要,将py的源码中注释删掉,然后编译成字节码。写此脚本主要是为了删除注释。当然如果上线不想放py源码,则在最后增加删除源码即可。#!

上线需要,将py的源码中注释删掉,然后编译成字节码。写此脚本主要是为了删除注释。当然如果上线不想放py源码,则在最后增加删除源码即可。

#!/bin/env python

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

# -------------------------------

# Filename:

# Revision:

# Date: 2012-12-3

# Author: simonzhang

# Email: simon-zzm@163.com

# Web: www.simonzhang.net

# -------------------------------

import os

import re

import sys

import shutil

import compileall

def delete_Notes(py_file):

# 原始文件只读打开,处理文件追加打开

_tmp_sr_file = open(py_file, "rb").readlines()

_tmp_de_file = open("%s.swp" % py_file, "ab")

_skip_status = 0

_now_line = 0

_multi_count = 0

# 循环处理

for line in _tmp_sr_file:

# 跳过前10行,因为我的开头注释有10行

if _now_line > 10:

# 获取开头一位和三位

try:

_single_row_notes = line.strip()[0]

except:

_single_row_notes = ""

try:

_multi_row_notes = line.strip()[0:3]

except:

_multi_row_notes = ""

# 获取行是否为注释

if _single_row_notes == "#":

_skip_status = 1

elif _multi_row_notes == "'''":

if _multi_count == 0:

_skip_status = 1

_multi_count = 1

else:

_skip_status = 1

_multi_count = 0

elif _multi_count == 1:

_skip_status = 1

else:

_skip_status = 0

else:

_skip_status = 0

# 判断是否跳过写入

if _skip_status == 0:

_tmp_de_file.write(line)

_now_line += 1

_tmp_de_file.close()

# 处理完毕将临时文件处理为原始文件

shutil.move("%s.swp" % py_file, py_file)

def main():

_get_src_path = sys.argv[1]

_get_dec_path = sys.argv[2]

if os.path.exists(_get_src_path):

# 拷贝原始文件夹

shutil.copytree(_get_src_path, _get_dec_path)

# 删除原始文件中的注释

find_py_file = re.compile(r"^.*\.py$")

find_walk = os.walk(_get_dec_path)

for path,dirs,files in find_walk:

for f in files:

if find_py_file.search(f):

delete_Notes("%s/%s" % (path, f))

# 编译成字节码

compileall.compile_dir(_get_dec_path)

else:

print "Path Error!"

if __name__ == "__main__":

main()

标签:

脚本

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。



推荐阅读
author-avatar
秦子萱135709
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有