列表中的换行符不在单独的行上打印

时间:2016-12-20 19:06:15

标签: python list printing newline line-breaks

我正在使用unicode文本数据类型,然后通过Regex解析它以查找信息并将其附加到列表中。这个列表中的数据可以很多,但有一个已知的对象,我总是想在一个单独的行上开始。此时我尝试在列表中添加一个新行字符,并且它总是在正确的位置添加换行符,但似乎这个字符在打印时只被视为列表中的对象,而不是实际强制打印输出在一个单独的线上。有没有人对如何将这些数据强制转移到另一条线上有任何建议?

===============当前节目输出全部在同一行==============

['\n', u'10.41.71.19 ', u'64512', '\n', u'192.168.0.1 ']

=============在两条线上的期望输出==============

[u'10.41.71.19 ', u'64512', 

u'192.168.0.1 ']

=============带有代码的SNIPIT我在我的列表中添加新行======

def jnprBgp(output):

 for line in output.splitlines():
    peerip = re.search('(\d+.\d+.\d+.\d+.)', line)
    if peerip:
       testlist.append('\n')
       testlist.append(peerip.groups()[0])
    peeras = re.search('\d+.\d+.\d+.\d+.\s+(\d+)', line)
    if peeras:
       testlist.append(peeras.groups()[0])

 for line in testlist:
    print testlist

1 个答案:

答案 0 :(得分:1)

打印一个包含字符串'\n'的列表作为其元素将不会导致打印实际的换行符。这意味着您应该自己处理列表的打印,如下所示:

def printList(l):
    print '[%s]' % ', '.join([repr(elem) if elem != '\n' else '\n' for elem in l])