Python应用:文件内容分析:筛选单词清单
今天工作又遇到了问题,简单说一下:是汉化Flash项目(程序文件扩展名as),部门的策划新手从老外那里发过来的策划案中的数据集文档析出中英文列表词元不完整,这是在调试程序时发现的。
我想起在源码中的字元定义很有规律可循,即都写成这种形式:
[color="#008080"]stype5Verb2.push("nap");
所以我可以使用Python正则来取出这种写法中的单词字元
这是所写程序,其生成所需字元清单,去除可能的重复字元并排序:
[color="#008080"]# restoreWordSets.py
[color="#0000ff"]import [color="#800000"]re
[color="#0000ff"]import [color="#800000"]types
[color="#000000"]sFile_wordSet[color="#00c600"]=[color="#000000"]r[color="#a6caf0"]'workfolder\words.as'
[color="#000000"]sPath_produce[color="#00c600"]=[color="#000000"]r[color="#a6caf0"]'[color="#a6caf0"]workfolder[color="#a6caf0"]\datasetFactory\produce\\'
[color="#000000"]sFile_Produce[color="#00c600"]=[color="#000000"]sPath_produce[color="#00c600"]+[color="#a6caf0"]'wordSets.txt'
[color="#000000"]sWs[color="#00c600"]=[color="#a6caf0"]''
[color="#000000"]dWord[color="#00c600"]=[color="#000000"]{}
[color="#808000"]f[color="#00c600"]=[color="#808000"]file[color="#000000"](sFile_wordSet)
[color="#000000"]aWs[color="#00c600"]=[color="#808000"]f[color="#00c600"].[color="#808000"]readlines[color="#000000"]()
[color="#808000"]f[color="#00c600"].[color="#808000"]close[color="#000000"]()
[color="#0000ff"]for [color="#000000"]ln [color="#0000ff"]in [color="#000000"]aWs:
[color="#008080"]# ex stype5Verb2.push("nap");
[color="#000000"]m[color="#00c600"]=[color="#800000"]re[color="#00c600"].[color="#808000"]search[color="#000000"]([color="#a6caf0"]'push\s*\(\s*"([^"]+)"\)'[color="#000000"],ln)
[color="#0000ff"]if [color="#808000"]type[color="#000000"](m) ![color="#00c600"]= [color="#800000"]types[color="#00c600"].NoneType[color="#000000"]:
[color="#000000"]w[color="#00c600"]=[color="#000000"]m[color="#00c600"].[color="#808000"]group[color="#000000"](1)
[color="#0000ff"]if not [color="#000000"]dWord[color="#00c600"].[color="#808000"]has_key[color="#000000"](w):
[color="#000000"]dWord[w][color="#00c600"]=[color="#000000"]1
[color="#000000"]aWord[color="#00c600"]=[color="#000000"]dWord[color="#00c600"].[color="#808000"]keys[color="#000000"]()
[color="#000000"]aWord[color="#00c600"].[color="#808000"]sort[color="#000000"]()
[color="#0000ff"]for [color="#000000"]e [color="#0000ff"]in [color="#000000"]aWord:
[color="#000000"]sWs[color="#00c600"]+=[color="#000000"]e[color="#00c600"]+[color="#a6caf0"]'\n'
[color="#808000"]f[color="#00c600"]=[color="#808000"]file[color="#000000"](sFile_Produce,[color="#a6caf0"]'w'[color="#000000"])
[color="#808000"]f[color="#00c600"].[color="#808000"]write[color="#000000"](sWs)
[color="#808000"]f[color="#00c600"].[color="#808000"]close[color="#000000"]()