0

我的文件包含:

"1 2 3 4 5 5 6  searching new
 1 2 3 4 5 5 6  search"
 1 2 3 4 5 5 6  search and"

代码:

with open('largeFile', 'r') as inF:
 for line in inF:
    if 'search' in line:
    # do_something 

我得到了我只想要第二行的两条线。

4

3 回答 3

0

像这样排除searching

with open('largeFile', 'r') as inF:
    for line in inF:
         if not 'searching' in line:
             # do_something 

取决于其他线条的外观。更准确地说,你可以这样做:

....if 'search' and not 'searching' in line:
于 2012-10-03T14:20:36.160 回答
0

怎么样

if line.endswith("search")

但公平地说,它并不清楚你想要什么。请发布更多示例行并告诉我们您期望哪些行。

于 2012-10-03T14:20:57.970 回答
0

您可以使用正则表达式。

使用单词边界(\b) 检查words, 并$检查行尾..

>>> line = "abc search"
>>> if re.search('(\\b(search)\\b)$', line):
          print "true"


true

>>> line1 = "search asdf"
>>> if re.search('(\\b(search)\\b)$', line):
          print "true"
>>> else:
          print "false"

false
于 2012-10-03T14:36:02.580 回答