Codejie's C++ Space

Using C++

LAC : Using Python to generate database


    是的,这两天我在玩Python!

    为了给LAC添加内置的词典, 需要将通过Lingoes-Extractor解出的数据导入到LAC使用的Sqlite中. 这个过程并不复杂 -- 解开ld2文件数据输出每条记录到一个文本文件中,然后处理每一条记录导入到Sqlite中即可,要是用C++来实现,也就两个晚上的事情,但,但这次我又蛋疼了...

    大约一个月前,工作中碰到一段Python脚本,对于我这样习惯C++的人来说,看类似Python脚本跟天书差不多了...虽然上半年看了几天Perl,但到今天也只记得名字了...
    于是这次'痛定思痛',决定搞起一个脚本语言来.于是就有了这次蛋疼的事情 -- 用Python实现LD2到Sqlite的导入.

    不多说,有兴趣的直接看Python脚本吧...

htmlparser.py
    这个实现了从解开后的ld2记录到内部数据的解析;

data2xml.py
    这个实现了从内部数据到指定xml字串的处理;(蛋疼啊,ld2本来的数据也是xml格式的...但为了展现我'高超'的python功底,自己又定义了一次格式...)

dbaccess.py
    这个实现了相关的数据库功能,包括主要的创建,写入等;

# !/usr/bin/python
#
 coding:utf-8

import string

import
 htmlparser
import data2xml
import dbaccess

def main():
#    str = 'test = <c><E>1</E><E>2</E>'
    
    file = open("../data/output.txt""r")
    conn = dbaccess.db_create("../data/lac.db3")
    dbaccess.table_create(conn)
#    dbaccess.db_test(conn)
#
    return
    dbaccess.add_dict(conn, 'Vicon English-Chinese(S) Dictionary')
    i = 0
    for line in file:
#        print line
        data = htmlparser.DictData()
        htmlparser.analyseLine(string.rstrip(line,  '\n'), data)
#        print 'data ===== ', data         
#        print data2xml.data2xml(data)
        dbaccess.add_record(conn, data.word, data2xml.data2xml(data))

    dbaccess.db_close(conn)
    file.close()

main()

    这个就是main入口了...

    如何?俺写的Python脚本如何?要是俺跟你说,一个月前,我连Python都会拼错,现在却可以写出如此'长'的Python脚本来了...你是觉得我很猛,还是觉得Python佷简单呢...
    虽然在编写Python脚本的时候,碰到了各种郁闷错误,各种坑爹的用法,但我还是满喜欢Python的,总比使用由那位获得两届IOCCC大奖的家伙创建的Perl的感觉爽了很多很多啊....


<---- 松口气的分割线 ---->

    昨晚终于搞定了这最终的Python脚本,但测试的结果不是佷满意. 生成LAC的sqlite数据需要将近3个小时不说,这超过80MB的数据文件更加让人崩溃...不过总的来说,终于可以先暂时放下这个数据导入的问题,继续编写LAC了...

   这个月工作上有些变故,也一直难以静心敲字,到上周也算到过阶段了...终于可以放松下了...



posted on 2012-11-01 11:28 codejie 阅读(1809) 评论(6)  编辑 收藏 引用 所属分类: 轮子精神LingosHook

评论

# re: LAC : Using Python to generate database 2012-11-02 16:22 haolly

现在用win7,office也升级到了2007
蛋痛的发现lingoes取词与ppt2007冲突很厉害,困窘了很长时间啊!毁掉了我多少工作成果了!!!  回复  更多评论   

# re: LAC : Using Python to generate database 2012-11-02 17:38 codejie

@haolly
不会啊,我现在也是win7+Office2007,PPT跟Lingoes合作的很好..你再看看,会不会是D版什么的问题啊..  回复  更多评论   

# re: LAC : Using Python to generate database 2012-11-14 13:55 jan

sqlite是好东西啊,以前我的自动打怪脚本也用这东西^^  回复  更多评论   

# re: LAC : Using Python to generate database 2012-11-15 11:06 codejie

@jan
强力啊你..能帮忙写个WOW自动打怪脚本不..我还有个DK等着升级呢...  回复  更多评论   

# re: LAC : Using Python to generate database 2012-11-15 16:39 jan

写是可以的,不过你的号就没有了^^ 我是用在朋友写的游戏上的,没人检测
原理很简答啊,就是根据色块不同判断有蓝没血什么的,再多加个轨迹路线点就快成外挂了,  回复  更多评论   

# re: LAC : Using Python to generate database 2012-11-15 16:54 codejie

@jan
'根据色块'?我怎么没想过这样做...  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜