python为Java项目增加预编译脚本

文章作者 100test 发表时间 2007:03:14 16:49:57
来源 100Test.Com百考试题网


早就听说python是一个十分不错的脚本语言,语法简洁而且开发效率很高。在从http://www.python.org下载了最新的windows版本的python解释器后,我又从eclipse的插件网下了pydev这个支持Python在Eclipse开发的插件。Python虽然是unix/linux下的东西,但是由于其执行和编写都很简单,所以在时常工作中能够快速解决一些小问题。同时,对于以后我需要研究算法,做论文的时候,也可以用python来快速开发一个算法的测试demo,尽量不必纠缠于程序具体实现时候的困难。

Python语言学起来比较容易,网上据说,python开发的效率比perl,php,ruby都高。在研究了IBM developworks的一篇文章:应用Python解决一些实际问题(http://www-128.ibm.com/developerworks/cn/linux/tips/l-python/)后,我也为现在正在做的J2ME项目做了个代码的预编译处理脚本。通过扫描Java项目中的标签,#if_version,#end_version,从一个原始的J2ME项目自动产生成各个机型的版本,比如NOKIA。索爱,MOTO。下面就是我第一次写的这个Python小程序,总共才100行多点,如果用其它语言写,肯定不止这么少。

1import sys, string, os
2
3g_sourcepath =
4g_destpath=
5g_parsefileext=[java,jsp,
6 c,cpp,h,
7 py,pl,php]
8
9def getversionlist():
10 file = open(version.txt,r)
11 lines = file.readlines()
12 file.close()
13 for i in range(len(lines)) :
14 lines[i] = lines[i][:-1]
15 return lines
16
17def isparsefile(filename):
18 splits = os.path.splitext(filename)
19 if len(splits) < 2:
20 return False
21 ext = splits[1]
22 ext = ext[1:]
23 if ext in g_parsefileext :
24 return True
25 else:
26 return False
27
28def getsubdir(dirname):
29 basedirlen = len(g_sourcepath)
30 if basedirlen >= len(dirname)-1:
31 return
32 subdir = dirname[basedirlen 1:]
33 return subdir
34
35def scan(arg, dirname, names):
36 for filename in names:
37 # 如果不是文件(还可能是目录),则跳过
38 if os.path.isfile(dirname \\ filename) == False:
39 continue
40 # 如果是生成版本说明文件,则跳过
41 if filename == version.txt:
42 continue
43 if isparsefile(filename) :
44 fileparsecopy(dirname,filename,arg)
45 else:
46 fileonlycopy(dirname,filename,arg)


相关文章


Gel:号称世界上最轻巧的JavaIDE
利用osworkflow实现业务流程
python为Java项目增加预编译脚本
方便管理plugin或rcp的icons
在RCP中实现用托拽打开Editor
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛