页面

##EasyReadMore##

2012年5月9日星期三

python第一活


最近想玩python,说是很方便的脚本语言。正好遇到了一个需求,就用python来写个小程序了。

这个小程序,简单来说就是做个文字的处理转换。

写的时候发现python的一个好处,就是有现成的库,能马上用起来。C的库太多了,想用头都大。也是因为程序简单,没有GUI,用C其实也难不倒哪里去。

记得matlab也是脚本语言,写起来的时候感觉他俩挺相似的。

一点不好,就是idle编辑的时候有小卡。用emacs试了试,没找到能运行的地方。idle里F5一记就跑起来了,方便多。

言归正传,这次的目的是从文件里读字串,筛选,转格式,写到文件里。需要用到字符串操作和文件操作。

文件来自于国图检索的资料,因为它没有直接保存成NoteExpress可用的格式,不好导到EXCEL里,就先以某种文本的格式保存下来了。文本的形式如下:

头标区               -----nam0-22----- 450-
记录控制号           005338871
记录最后处理         20111206150312.0

前面是项目的名称,相当于key
后面是项目的内容,相当于value
中间用空格隔开

我的目的就是把我想要的条目摘出来,转置后输出成表格的形式,txt的,一组数据一行,每种数据一列。每一列用'\t'隔开,这样在拷贝到EXCEL里后会分到一列列的格子里(啊我是一个土逼不会直接写到EXCEL)。

于是完成这个转换就是分三步

1.分析字串的特点,找到可以拿来if的条件

2.写程序,调试,让一个个if能成功拆掉原来的文本(python好像没有switch?)

3.输出个表格头,再输出每组题录各项的信息。这样打开输出的文件时,它们已按照表格的形式排列好了~

做的时候发现几个有意思的问题:

1.有的key不止一个
我拿一个[]去保存一组数据里每一个该key对应的value,最后输出的时候再把它们拆出来

2.如何判断一组数据读完了
就是又遇到第一个key,则说明一组数据读完了。用这种方法还需要检查是不是读到文件的最后一行了,因为最后一组数据是没有下一个的。

3.分析字串的特点
因为文件很大,有很多很多组数据。刚开始看的时候觉得很复杂,没有规律,觉得做不了。但实际上一点点分类,还是有些规律的。一口一口吃几下,就被吃掉了。想起一位老师说的,你对信号了解得越多,分析它就越容易。


其实也是吹不起来的小程序啦,

觉得python编程挺方便,用起来挺管用的。
还是要找这样的题目做学起来才有动力啊~

这次这个太专了,下次找个广一点能做成软件的,可以尝试下用户界面的东西

附代码
txtedit.py

没有评论:

发表评论