初学者求助:使用python进行文本搜索

huatuo20002008 2010-01-04 07:13:27
现在有一个文本,内容如下:
>>cat a.txt
a=1,befc
a=11,azxv
a=2,azvf
a=231,fffe
a=24,zefg


需求:
写一完整python程序对其字符串进行排序处理,排序结果如下:
a=1,befc
a=2,azvf
a=11,azxv
a=24,zefg
a=231,fffe
...全文
286 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huatuo20002008 2010-01-05
  • 打赏
  • 举报
回复
请各位大虾帮忙看看这个问题呵^_^,自己再顶一个
huatuo20002008 2010-01-05
  • 打赏
  • 举报
回复
多谢各位大侠,按二楼、三楼的code已经验证okay,再请教下:
如果文本变成多段,每段通过/*CSDN*/分开,中间有空行。段的数量实际情况很多,并且每段数字前的索引相同,但不同段间的索引不同)
>>cat a.txt
/*CSDN*/
a=1,befc
a=11,azxv
a=2,azvf
a=231,fffe
a=24,zefg

/*CSDN*/
ADD,b=2,befc
ADD,b=11,azxv
ADD,b=7,azvf
ADD,b=121,fffe
ADD,b=24,zefg

需求:
去掉空行,每段分别排序排序结果如下:
/*CSDN*/
a=1,befc
a=2,azvf
a=11,azxv
a=24,zefg
a=231,fffe
/*CSDN*/
ADD,b=2,befc
ADD,b=7,azvf
ADD,b=11,azxv
ADD,b=24,zefg
ADD,b=121,fffe
notax 2010-01-04
  • 打赏
  • 举报
回复

大型文件
http://code.activestate.com/recipes/576755/

擒兽 2010-01-04
  • 打赏
  • 举报
回复
大型文件可能会挂掉
notax 2010-01-04
  • 打赏
  • 举报
回复
def my_cmp(a, b ):
a_value = int(a.lstrip('a=').split(',')[0])
b_value = int(b.lstrip('a=').split(',')[0])
return cmp(a_value, b_value)

lines = [ l.strip() for l in open('t.txt') if l.strip() ]

for l in sorted(lines, cmp = my_cmp):
print l
lovetysx 2010-01-04
  • 打赏
  • 举报
回复
这样就可以了

import re

file_a = open('a.txt')

pattern = re.compile('a=(\d+),(\w+)')

dict_1 = {}
for line in file_a:
s = pattern.match(line).group(1)
dict_1[int(s)] = line

list_1 = dict_1.keys()
list_1.sort()
for i in list_1:
print dict_1[i]
huatuo20002008 2010-01-04
  • 打赏
  • 举报
回复
先自己顶一个^_^

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧