免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: tianting002
打印 上一主题 下一主题

python 如何得到匹配到string的行 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-04-26 23:06 |只看该作者
>>> x='abcdefg'
>>> x.find('c')
2
>>> x.find('c',1,
2
>>> x.find('c',2,
2
>>> x.find('c',3,
-1


string.find(str,beg=0,end=len(string))  检查str是否在string中,如果在返回索引值,如不在返回-1

论坛徽章:
0
12 [报告]
发表于 2012-04-26 23:12 |只看该作者
非常谢谢 楼上几位!

论坛徽章:
0
13 [报告]
发表于 2012-04-27 08:54 |只看该作者
本帖最后由 anonymous0502 于 2012-04-27 10:35 编辑
tianting002 发表于 2012-04-26 22:52
回复 8# ilikeqdi


转换成小写或大写来判断就等于忽略大小写了
  1. print ''.join([x for x in open('change.log').readlines() if x.lower().find('error')!=-1])
复制代码
写错了,改正一下{:2_166:}

这么简短的,处理的文件不大的话直接命令行也可以运行。不过要是命令行的话grep一下就搞定了,没必要敲这么多字符了。

[root@co601 tmp]# ls -lh change.log
-rw-r--r-- 1 root root 476 Apr 26 18:25 change.log
[root@co601 tmp]# echo "print ''.join([x for x in open('change.log').readlines() if x.lower().find('error')!=-1])"|python
Please wait while, the wizard is runing now!error
if you choose to ignore this error and continue, do not enter private information into the website.
For more information, see 'Certificate Error' in Internet Explorer Help!

论坛徽章:
0
14 [报告]
发表于 2012-04-27 12:30 |只看该作者
我的意思不能通过这个函数直接实现

论坛徽章:
0
15 [报告]
发表于 2012-04-27 12:49 |只看该作者
str.find(sub[, start[, end]])
是的,没有选项参数可以设置,所以我也只是说“等于”
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP