找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 15598|回复: 4

[已解决] 如何查找指定字符串的位置,返回所在行号

3

主题

10

帖子

10

积分

贫民

积分
10
xywang52 发表于 2016-10-12 22:37:11 | 显示全部楼层 |阅读模式
查找'Hello'在a.txt中的位置,返回行号,该怎么实现的呢?

a.txt
123456789
He20200&
%%Hello78
sdjdksjjdsk
回复

使用道具 举报

0

主题

24

帖子

24

积分

贫民

积分
24
leftloveu 发表于 2016-10-13 10:13:43 | 显示全部楼层
本帖最后由 leftloveu 于 2016-10-13 10:22 编辑

逐行读取和匹配,然后返回行号就行了,代码里是将所需要匹配字符串作为参数传递进去的,然后文件的路径是我本机的路径,可以自行修改,最好是也作为参数传递,尽可能做成一个通用的东西

  1. def fileTest(strVal):
  2.         lineNum = 0
  3.         msg = "There is no result"
  4.         with open(r"f:\a.txt", 'r') as file:
  5.                 for line in file.readlines():
  6.                         lineNum = lineNum + 1
  7.                         if strVal in line.strip():
  8.                                 msg = "'%s' string in line %d" % (strVal, lineNum)
  9.                                 break
  10.         print msg

  11. >> fileTest("Hello")
  12. >> 'Hello' string in line 3
  13. >> fileTest("Bye")
  14. >> There is no result
复制代码
回复 支持 1 反对 0

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-10-13 20:51:10 | 显示全部楼层
或者调用linux系统命令 grep
回复 支持 反对

使用道具 举报

3

主题

10

帖子

10

积分

贫民

积分
10
xywang52  楼主| 发表于 2016-10-16 18:59:43 | 显示全部楼层
leftloveu 发表于 2016-10-13 10:13
逐行读取和匹配,然后返回行号就行了,代码里是将所需要匹配字符串作为参数传递进去的,然后文件的路径是我 ...

问题完美解决,非常感谢~
回复 支持 反对

使用道具 举报

3

主题

10

帖子

10

积分

贫民

积分
10
xywang52  楼主| 发表于 2016-10-16 19:00:26 | 显示全部楼层
blueelwang 发表于 2016-10-13 20:51
或者调用linux系统命令 grep

在win上运行python也可以调用linux命令么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表