python删除源文件中的注释并编译
发布时间:2020-05-30 17:48:06 所属栏目:Python 来源:互联网
导读:python删除源文件中的注释并编译
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 #!/bin/env python
# -*- coding:utf-8 -*-
# -------------------------------
# Filename:
# Revision:
# Date: 2012-12-3
# Author: simonzhang
# Email: [emailprotected]
# 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()
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
