请教:python处理文本

请教:python处理文本

今天遇到一个问题,从网上查到的7天连锁酒店北京分店,保存成文本后,居然编程用空格分隔的一行了。

想请教各位,怎么把它处理成每行:

店名    城市    行政区    地址

的格式?


我在vim中没想出好办法解决(只能录制宏了)。用python怎么处理呢? 谢谢!



北京劲松店 北京市 朝阳区 劲松南路5号楼 北京奥运村店 北京市 朝阳区 奥体东门安苑东里1区4号 北京国贸店 北京市 朝阳区西大望路下甸厂坡村16号(八王坟长途汽车站对...  北京奥运村二店 北京市 朝阳区 小营路(四方大厦对面胡同内)8号 北京华威店 北京市朝阳区 松榆南路36号 北京望京店 北京市 朝阳区 望京西园428号(望京华联路口东北侧,阜通西...  北京安贞店 北京市 朝阳区安贞西里四区甲1号(安贞医院正门对面) 北京北沙滩店 北京市 朝阳区 德胜门外北沙滩1号 北京十里河店 北京市 朝阳区十里河小武基路周家庄8号 北京四惠店 北京市 朝阳区 东四环百子湾桥向东500米丁字路口右转石门村...  北京团结湖店 北京市 朝阳区团结湖北里9号楼(团结湖派出所旁) 北京广渠门店 北京市 崇文区 培新街7号南院 北京天坛店 北京市 崇文区天坛东里甲48号(路东公交车站台东侧路旁或者...  北京方庄店 北京市 崇文区 左安门内大街浦园小区1号楼 北京东四店 北京市 东城区东四六条45号 北京东直门店 北京市 东城区 东直门外大街察慈小区9号楼 北京朝阳门店 北京市 东城区 朝阳门内大街甲190号(地铁5号线东四站...  北京总部基地店 北京市 丰台区 南四环西188号总部基地十二区6号楼 北京南站店 北京市 丰台区马家堡西路22号院(建工北国后院内) 北京刘家窑店 北京市 丰台区 南三环东路29号(地铁5号线刘家窑站B出口旁...  北京学院路店 北京市海淀区 学清路41号 北京中关村店 北京市 海淀区 大钟寺四道口路1号 北京西客站店 北京市 海淀区 北蜂窝路乔建里2号 北京上地店 北京市海淀区 上地六街28号 北京鼓楼店 北京市 西城区 旧鼓楼大街47号 北京西直门店 北京市 西城区 育幼胡同甲20、22号 北京马甸桥店北京市 西城区 德胜门外大街2号 北京金融街店 北京市 西城区 车公庄南街北口向南150米(官园商品批发市场...  北京天安门店 北京市西城区 西绒线胡同乙9号 北京大观园店 北京市 宣武区 鸭子桥路39号 北京石景山古城店 筹建中 北京酒仙桥店 筹建中 北京南站东店 筹建中
如果有规则,就可以正则;
好像没看出什么规则.呵呵
用split拆分,然后用循环4次赋值即可。
楼上是一种方法.如果名字中没空格可以这么处理.
多谢大家的帮助!

QUOTE:
原帖由 weizi 于 2009-1-8 21:32 发表
用split拆分,然后用循环4次赋值即可。

这个想法应该可行,不过不知怎么实现?
a1 = ‘北京劲松店 北京市 朝阳区 劲松南路5号楼 北京奥运村店 北京市 朝阳区 奥体东门安苑东里1区4号 北京国贸店 北京市朝阳区西大望路下甸厂坡村16号(八王坟长途汽车站对...  北京奥运村二店 北京市 朝阳区 小营路(四方大厦对面胡同内)8号 北京华威店北京市朝阳区 松榆南路36号 北京望京店 北京市 朝阳区 望京西园428号(望京华联路口东北侧,阜通西...  北京安贞店 北京市朝阳区安贞西里四区甲1号(安贞医院正门对面) 北京北沙滩店 北京市 朝阳区 德胜门外北沙滩1号 北京十里河店 北京市朝阳区十里河小武基路周家庄8号 北京四惠店 北京市 朝阳区 东四环百子湾桥向东500米丁字路口右转石门村...  北京团结湖店 北京市朝阳区团结湖北里9号楼(团结湖派出所旁) 北京广渠门店 北京市 崇文区 培新街7号南院 北京天坛店 北京市崇文区天坛东里甲48号(路东公交车站台东侧路旁或者...  北京方庄店 北京市 崇文区 左安门内大街浦园小区1号楼 北京东四店 北京市东城区东四六条45号 北京东直门店 北京市 东城区 东直门外大街察慈小区9号楼 北京朝阳门店 北京市 东城区朝阳门内大街甲190号(地铁5号线东四站...  北京总部基地店 北京市 丰台区 南四环西188号总部基地十二区6号楼 北京南站店 北京市丰台区马家堡西路22号院(建工北国后院内) 北京刘家窑店 北京市 丰台区 南三环东路29号(地铁5号线刘家窑站B出口旁...  北京学院路店北京市海淀区 学清路41号 北京中关村店 北京市 海淀区 大钟寺四道口路1号 北京西客站店 北京市 海淀区 北蜂窝路乔建里2号 北京上地店北京市海淀区 上地六街28号 北京鼓楼店 北京市 西城区 旧鼓楼大街47号 北京西直门店 北京市 西城区 育幼胡同甲20、22号北京马甸桥店北京市 西城区 德胜门外大街2号 北京金融街店 北京市 西城区 车公庄南街北口向南150米(官园商品批发市场...  北京天安门店北京市西城区 西绒线胡同乙9号 北京大观园店 北京市 宣武区 鸭子桥路39号 北京石景山古城店 筹建中 北京酒仙桥店 筹建中 北京南站东店筹建中’
a = a1.split()
>>> for b in range(len(a)):
...      print a,
...      if ((b+1)%4 == 0) and (b <>0):
...         print

如果名字有空格,我想是没有办法实现拆分了。因为没有规律了。


QUOTE:
原帖由 weizi 于 2009-1-8 21:44 发表
a1 = ‘北京劲松店 北京市 朝阳区 劲松南路5号楼 北京奥运村店 北京市 朝阳区 奥体东门安苑东里1区4号 北京国贸店 北京市朝阳区西大望路下甸厂坡村16号(八王坟长途汽车站对...  北京奥运村二店 北京市 朝阳区 小 ...

我试过了,不行,居然是个运行好几分钟不停。不知是哪里出了问题。

还是很感谢你!
修改了一下,应该可以了。不过你的数据好像有问题。并不是四个一组。
第三组就有问题了。

北京劲松店 北京市 朝阳区 劲松南路5号楼
北京奥运村店 北京市 朝阳区 奥体东门安苑东里1区4号
北京国贸店 北京市朝阳区西大望路下甸厂坡村16号(八王坟长途汽车站对... 北京奥运村二店 北京市
朝阳区 小营路(四方大厦对面胡同内)8号 北京华威店北京市朝阳区 松榆南路36号
北京望京店 北京市 朝阳区 望京西园428号(望京华联路口东北侧,阜通西...
北京安贞店 北京市朝阳区安贞西里四区甲1号(安贞医院正门对面) 北京北沙滩店 北京市