Chinaunix

标题: 新手关于编程工具python, sed, awk 的问题(请指点) [打印本页]

作者: nickleeh    时间: 2008-11-18 09:34
标题: 新手关于编程工具python, sed, awk 的问题(请指点)
近日处理文件,发现一规则文本,手工处理太慢。便想写个脚本,却发现无从入手。

请看例子:(见附件)


一个北京捷安特维修店的文档。其中主要有:

1. 店名
2. 地址
3. 乘车路线
4. 电话

现在想实现:

1. 每个店的信息之间用一空行隔开
2. 把所有店按地址排序(即:北京市朝阳区,海淀区,东城区...)

一直在学习python. 觉得可以用python实现。 有人说用sed,awk. 由于我对这两个工具不熟,再者在windows下,这两个工具还要安装。


请问:

1. Python能实现sed,awk的功能吗?
2. 用python解决这个问题有办法吗?
3. 难道文本处理非得用sed, awk, perl 等工具吗?


谢谢大家!

[ 本帖最后由 nickleeh 于 2008-11-18 10:04 编辑 ]

giant.rar

1.88 KB, 下载次数: 44


作者: xiaoyu9805119    时间: 2008-11-18 10:32
如果对sed awk不是很熟的把,就选个编程语言来解决把

py和perl都能很方便的处理文本,不过个人觉得perl在处理文本和正则匹配方便比py来的简洁明了。
作者: guijia8427    时间: 2008-11-18 11:37
既然在学python那就用python实现吧 虽然可能perl在这方面更简洁点 但那个不是一两天就能上手的
作者: jjj137    时间: 2008-11-18 18:59
python虽然写起来不是太简洁,但是原理不难。
作者: nickleeh    时间: 2008-11-20 10:33
大家都说用python实现,怎么没人说一下实现办法呀? 起码说个思路呀!
作者: jiangnanandi    时间: 2008-11-20 13:22
呵呵 用Python的 字典 就可以实现:
1、过滤文本的每一行,将每一个店的信息建立字典中的一条记录。而且记录以店的地址为关键字,其他信息组成一个列表为值
2、全部读取到字典以后,用正则表达式匹配地址相似的记录,即匹配字典中关键字类似的放在一起。
3、全部处理完以后输出到文本,每一个店后边 追加一条空格即可。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2