abc=123
dabc=123
abc=456
dabc=789
aabd=123
从上面的文件我需要找到以abc =开头的行(空格无关紧要)
在ruby中我会把它放在一个数组中并执行
matches = input.grep(/^\s*abc=.*/).map(&:strip)
我是Python中的一个完全noob,甚至说我是一个新的Python开发人员太多了。
也许有一种更好的“Python方式”,即使没有点击也可以做到这一点?
我需要解决问题的平台上提供的Python版本是2.6
当时没有办法使用Ruby
答案 0 :(得分:5)
with open("myfile.txt") as myfile:
matches = [line.rstrip() for line in myfile if line.lstrip().startswith("abc=")]
答案 1 :(得分:1)
在Python中,您通常会使用列表推导,其if
子句可以完成您使用Ruby grep
完成的任务:
import sys, re
matches = [line.strip() for line in sys.stdin
if re.match(r'^\s*abc=.*', line)]