WEB开发网
开发学院WEB开发Jsp python为Java项目增加预编译脚本 阅读

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

 2008-01-05 18:12:58 来源:WEB开发网   
核心提示: 早就听说python是一个十分不错的脚本语言,语法简洁而且开发效率很高,python为Java项目增加预编译脚本,在从http://www.python.org下载了最新的windows版本的python解释器后,我又从eclipse的插件网下了pydev这个支持Python在Eclipse开发的插件,肯定不止这么少

  早就听说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行多点,假如用其它语言写,肯定不止这么少。

 1python为Java项目增加预编译脚本import sys, string, os
  2python为Java项目增加预编译脚本
  3python为Java项目增加预编译脚本g_sourcepath = ''
  4python为Java项目增加预编译脚本g_destpath=''
  5python为Java项目增加预编译脚本g_parsefileext=['java','jsp',
  6python为Java项目增加预编译脚本         'c','cpp','h',
  7python为Java项目增加预编译脚本         'py','pl','php']
  8python为Java项目增加预编译脚本
  9python为Java项目增加预编译脚本def getversionlist():
10python为Java项目增加预编译脚本   file = open('version.txt','r')
11python为Java项目增加预编译脚本   lines = file.readlines()
12python为Java项目增加预编译脚本   file.close()
13python为Java项目增加预编译脚本   for i in range(len(lines)) :
14python为Java项目增加预编译脚本     lines[i] = lines[i][:-1]
15python为Java项目增加预编译脚本   return lines
16python为Java项目增加预编译脚本
17python为Java项目增加预编译脚本def isparsefile(filename):
18python为Java项目增加预编译脚本   splits = os.path.splitext(filename)
19python为Java项目增加预编译脚本   if len(splits) < 2:
20python为Java项目增加预编译脚本     return False
21python为Java项目增加预编译脚本   ext = splits[1]
22python为Java项目增加预编译脚本   ext = ext[1:]
23python为Java项目增加预编译脚本   if ext in g_parsefileext :
24python为Java项目增加预编译脚本     return True
25python为Java项目增加预编译脚本   else:
26python为Java项目增加预编译脚本     return False
27python为Java项目增加预编译脚本
28python为Java项目增加预编译脚本def getsubdir(dirname):
29python为Java项目增加预编译脚本   basedirlen = len(g_sourcepath)
30python为Java项目增加预编译脚本   if basedirlen >= len(dirname)-1:
31python为Java项目增加预编译脚本     return ''
32python为Java项目增加预编译脚本   subdir = dirname[basedirlen+1:]
33python为Java项目增加预编译脚本   return subdir
34python为Java项目增加预编译脚本  
35python为Java项目增加预编译脚本def scan(arg, dirname, names):
36python为Java项目增加预编译脚本   for filename in names:
37python为Java项目增加预编译脚本     # 假如不是文件(还可能是目录),则跳过
38python为Java项目增加预编译脚本     if os.path.isfile(dirname+'\\'+filename) == False:
39python为Java项目增加预编译脚本       continue
40python为Java项目增加预编译脚本     # 假如是生成版本说明文件,则跳过
41python为Java项目增加预编译脚本     if filename == 'version.txt':
42python为Java项目增加预编译脚本       continue
43python为Java项目增加预编译脚本     if isparsefile(filename) :
44python为Java项目增加预编译脚本       fileparsecopy(dirname,filename,arg)
45python为Java项目增加预编译脚本     else:
46python为Java项目增加预编译脚本       fileonlycopy(dirname,filename,arg)
47python为Java项目增加预编译脚本
48python为Java项目增加预编译脚本def fileonlycopy(dirname,filename,verlist):
49python为Java项目增加预编译脚本   srcfilename = dirname+'\\'+filename
50python为Java项目增加预编译脚本   file = open(srcfilename,'r')
51python为Java项目增加预编译脚本   text = file.read()
52python为Java项目增加预编译脚本   file.close()
53python为Java项目增加预编译脚本   subdir = getsubdir(dirname)
54python为Java项目增加预编译脚本   for ver in verlist :
55python为Java项目增加预编译脚本     destfilepath = g_destpath+'\\'+ver
56python为Java项目增加预编译脚本     if len(subdir) > 0 :
57python为Java项目增加预编译脚本       destfilepath = destfilepath +'\\'+subdir
58python为Java项目增加预编译脚本     if(os.path.exists(destfilepath) == False):
59python为Java项目增加预编译脚本       os.mkdir(destfilepath)
60python为Java项目增加预编译脚本     destfilename = destfilepath+'\\'+filename
61python为Java项目增加预编译脚本     file = open(destfilename,'w')
62python为Java项目增加预编译脚本     file.write(text)
63python为Java项目增加预编译脚本     file.close()
64python为Java项目增加预编译脚本     PRint 'copy '+destfilename
65python为Java项目增加预编译脚本    
66python为Java项目增加预编译脚本def fileparsecopy(dirname,filename,verlist):
67python为Java项目增加预编译脚本   srcfilename = dirname+'\\'+filename
68python为Java项目增加预编译脚本   file = open(srcfilename,'r')
69python为Java项目增加预编译脚本   srclines = file.readlines()
70python为Java项目增加预编译脚本   file.close()
71python为Java项目增加预编译脚本  
72python为Java项目增加预编译脚本   subdir = getsubdir(dirname)
73python为Java项目增加预编译脚本  
74python为Java项目增加预编译脚本   destfiletexts = []
75python为Java项目增加预编译脚本   for ver in verlist :
76python为Java项目增加预编译脚本     destfiletexts.append('')
77python为Java项目增加预编译脚本  
78python为Java项目增加预编译脚本   # 扫描源文件的每一行
79python为Java项目增加预编译脚本   curverindex = -1
80python为Java项目增加预编译脚本   lineno = 1
81python为Java项目增加预编译脚本   for curline in srclines :
82python为Java项目增加预编译脚本     Wordindex = -1
83python为Java项目增加预编译脚本     verindex = 0
84python为Java项目增加预编译脚本     for flag in verlist :
85python为Java项目增加预编译脚本       if '#if_version '+flag in curline :
86python为Java项目增加预编译脚本         curverindex = verindex
87python为Java项目增加预编译脚本         break
88python为Java项目增加预编译脚本       elif '#end_version' in curline :
89python为Java项目增加预编译脚本         curverindex = -1
90python为Java项目增加预编译脚本         break
91python为Java项目增加预编译脚本       verindex = verindex +1
92python为Java项目增加预编译脚本
93python为Java项目增加预编译脚本     if verindex == len(verlist) : # 不是标记行
94python为Java项目增加预编译脚本       if curverindex >= 0: # 某个版本标记内的行
95python为Java项目增加预编译脚本         destfiletexts[curverindex] = destfiletexts[curverindex] + curline
96python为Java项目增加预编译脚本       else : # 所有版本都有的内容
97python为Java项目增加预编译脚本         for i in range(len(destfiletexts)) :
98python为Java项目增加预编译脚本           destfiletexts[i]  = destfiletexts[i]+ curline
99python为Java项目增加预编译脚本          
100python为Java项目增加预编译脚本     lineno = lineno +1
101python为Java项目增加预编译脚本   # 产生各个版本的目标文件
102python为Java项目增加预编译脚本   verindex = 0;
103python为Java项目增加预编译脚本   for ver in verlist :
104python为Java项目增加预编译脚本     destfilepath = g_destpath+'\\'+ver
105python为Java项目增加预编译脚本     if len(subdir) > 0 :
106python为Java项目增加预编译脚本       destfilepath = destfilepath +'\\'+subdir
107python为Java项目增加预编译脚本     if(os.path.exists(destfilepath) == False):
108python为Java项目增加预编译脚本       os.mkdir(destfilepath)
109python为Java项目增加预编译脚本     destfilename = destfilepath+'\\'+filename
110python为Java项目增加预编译脚本     file = open(destfilename,'w')
111python为Java项目增加预编译脚本     file.write(destfiletexts[verindex])
112python为Java项目增加预编译脚本     file.close()
113python为Java项目增加预编译脚本     verindex = verindex + 1
114python为Java项目增加预编译脚本     print 'parse '+ destfilename
115python为Java项目增加预编译脚本
116python为Java项目增加预编译脚本# main  
117python为Java项目增加预编译脚本if len(sys.argv) < 3 :
118python为Java项目增加预编译脚本   sys.stderr.write("No source Directory or dest directory parameter!");
119python为Java项目增加预编译脚本else:
120python为Java项目增加预编译脚本   g_sourcepath = sys.argv[1]
121python为Java项目增加预编译脚本   g_destpath = sys.argv[2]
122python为Java项目增加预编译脚本   os.chdir(g_sourcepath)
123python为Java项目增加预编译脚本   verlist = getversionlist()
124python为Java项目增加预编译脚本   os.path.walk(g_sourcepath, scan, verlist)
125python为Java项目增加预编译脚本sys.exit(1)
126python为Java项目增加预编译脚本  


Tags:python Java 项目

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接