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
订阅:
博文评论 (Atom)
没有评论:
发表评论