读取文件时忽略空行和带有匹配词的grep行

2024-04-20 12:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写的样本代码,将读取一个文件,但 a) 忽略空行 b) 只显示以dm开头的行- 但它给了我错误,不知道该怎么办, 谁能给我点光吗

def _find_dm_name():
        with open (IOSTAT_OUTPUT,'r')as f:
                for line in f:
                  lines = (line.rstrip() for line in f)
                  lines = list(line for line in lines if line)
                  if re.match("(dm-)", lines):
                   content=lines
        return content
if __name__ == '__main__':
        dm_name=_find_dm_name()
        print dm_name


Traceback (most recent call last):
  File "test.py", line 47, in <module>
    dm_name=_find_dm_name()
  File "test.py", line 41, in _find_dm_name
    if re.match("(.*)", lines):
  File "/usr/lib64/python2.6/re.py", line 137, in match
    return _compile(pattern, flags).match(string)
TypeError: expected string or buffer

即使我试试这个

def _find_dm_name():

        with open (IOSTAT_OUTPUT,'r')as f:
                for line in f:
                  if re.match("(dm-*)", line):
                   content=line
        return content

它只给我最后一行

但是如何得到所有只匹配dm-+的行,忽略任何空行


Tags: nameinpyreforreturnifmatch