免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11829 | 回复: 4
打印 上一主题 下一主题

求助文件中字符串的查找 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-02 10:07 |只看该作者 |倒序浏览
这两天刚学Python,在练习的时候遇到一个问题想请教各位前辈。如题如下:

在一个文件中有很多行数字或字符串。。

  第1行是 123456789
  第2行是 987654321
  第3行是 qwertyui90o
  第5行是 123456789
  第6行是 987654321
  第7行是 iotmhgntk
   ...
   ...
我现在想把第5行“123456789”查找出来,但因为文件里有很多重复的"123456789",所以我的想法是先找出“iotmhgntk”然后再往前推2行把“123456789”找出来。还请各位指点一下。谢谢

注:
  "123456789" 是我举的一个例子在文件中它的内容是变的。但“iotmhgntk”是固定的,而且他们之间的行数差别也是固定的。说白了我就是想把“iotmhgntk”前面的2行或后面的两行找出来。

论坛徽章:
0
2 [报告]
发表于 2010-07-02 11:24 |只看该作者
晕。。有没有人能帮一下啊???

论坛徽章:
0
3 [报告]
发表于 2010-07-02 12:12 |只看该作者
回复 2# holee
直接写呗。。。
  1. #!/usr/bin/env python

  2. with open('./dd.txt','r') as my_file:
  3.     lines = my_file.readlines()
  4.     for i in range(len(lines)):
  5.         lines[i] = lines[i].replace('\r','')
  6.         lines[i] = lines[i].replace('\n','')
  7.         if lines[i] == 'iotmhgntk':
  8.             print lines[i-2]
  9.         i=i+1
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-07-02 18:05 |只看该作者
a.txt
  1. 123456789
  2. 987654321
  3. qwertyui90o
  4. 123456789
  5. 987654321
  6. iotmhgntk
  7. iotmhgntk
  8. 123456789
  9. 987654321
  10. qwertyui90o
  11. 123456789
  12. 987654321
  13. iotmhgntk
  14. 987654321
  15. iotmhgntk
  16. aabbccdde
  17. 123456789
  18. 987654321
  19. qwertyui90o
  20. 123456789
  21. 987654321
  22. iotmhgntk
  23. iotmhgntk
复制代码
a.py
  1. #coding=utf-8

  2. result = []
  3. addflag = 1
  4. delflag = 1
  5. mstr = 'aabbccdde'
  6. fp = open('a.txt', 'r')

  7. for line in fp:
  8.     line = line.strip()

  9.     if len(result) >= 3 and delflag == 1:
  10.         del(result[0])
  11.    
  12.     if addflag == 1:
  13.         result.append(line)

  14.     if line == mstr:
  15.         delflag = 0

  16.     if len(result) >= 5:
  17.         addflag = 0

  18. fp.close()

  19. print result
复制代码
  1. D:\>python a.py
  2. ['987654321', 'iotmhgntk', 'aabbccdde', '123456789', '987654321']
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-07-03 00:40 |只看该作者
谢谢 #donglongchao 和 #t6760915的回复。。问题解决了。。多谢。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP