1
abc=123
dabc=123
  abc=456
  dabc=789
    aabd=123

从上面的文件中,我需要找到以 abc= 开头的行(空格无关紧要)

在红宝石中我会把它放在一个数组中并做

matches = input.grep(/^\s*abc=.*/).map(&:strip)

我对 Python 完全是个菜鸟,甚至说我是一个新的 Python 开发人员也太过分了。

也许有更好的“Python方式”来做到这一点,甚至不需要 grepping ?

我需要解决问题的平台上可用的Python版本是2.6

那时还没有办法使用 Ruby

4

2 回答 2

5
with open("myfile.txt") as myfile:
    matches = [line.rstrip() for line in myfile if line.lstrip().startswith("abc=")]
于 2012-09-16T22:01:54.603 回答
1

在 Python 中,您通常会使用列表推导式,其if子句执行您使用 Ruby 完成的操作grep

import sys, re
matches = [line.strip() for line in sys.stdin
           if re.match(r'^\s*abc=.*', line)]
于 2012-09-16T22:02:31.563 回答