将re.search的结果打印为CSV字符串

时间:2014-05-13 19:55:53

标签: python regex list csv regex-group

我正在编写一个脚本来解析日志中感兴趣的行。除打印线条外,它运行良好。我有一个参数化的正则表达式,我在re.search中使用,它返回我的结果。我可以单独打印它们,也可以循环浏览列表。

我的问题是,对于每个匹配,我想要打印一个CSV行,基本上每个值都用引号括起来(并且在行尾没有逗号)。有一个简单的方法吗?

我有这个:

   if lineMatch:
      for capturedToken in lineMatch.groups():
        #print capturedToken

使用Python 2.7我将如何打印为CSV行(后跟新行)?

我已经尝试过打印/结束,但据我所知,这只是Python 3.x - 我试过的每个变体都给了我语法错误。我确定有一种很酷的Pythonic方法可以将linematch组中的值打印为逗号分隔列表;我似乎无法找到它!

2 个答案:

答案 0 :(得分:1)

我想你想要这个:

if lineMatch:
    print(', '.join(['"{}"'.format(t) for t in lineMatch.groups()]))

用法:

>>> m = re.search('(\d{4})-(\S+)', "1995-jun")
>>> print ', '.join(['"{}"'.format(i) for i in m.groups()])
"1995", "jun"

答案 1 :(得分:0)

使用来自这样的字符串的连接方法:

print ",".join(lineMatch.groups())