【发布时间】:2017-01-27 05:38:51
【问题描述】:
我正在尝试对 python 中的文本进行简单的解析,我在 bash 中使用 tr '\n' ' ' 没有问题。基本上将所有行放在一条线上。在 python 中打印行与我理解的有点不同。 re.sub 找不到我的新行,因为它不存在,即使我打印到输出它确实存在。有人可以解释我如何在 python 中解决这个问题吗?
到目前为止,这是我的代码:
# -*- iso-8859-1 -*-
import re
def proc():
f= open('out.txt', 'r')
lines=f.readlines()
for line in lines:
line = line.strip()
if '[' in line:
line_1 = line
line_1_split = line_1.split(' ')[0]
line_2 = re.sub(r'\n',r' ', line_1_split)
print line_2
proc()
编辑:我知道“打印行”将在没有换行符的情况下打印。问题是我需要在逐行执行操作之前和之后处理这些行。我在 shell 中的代码使用 sed、awk 和 tr 来执行此操作。
【问题讨论】:
-
line.strip()删除 all 前导和尾随空格,包括\n。顺便说一句,如果您想逐行处理,最好使用for line in f:,而不是使用readlines将整个文件读入列表,然后遍历列表。 -
print在输出末尾添加一个换行符。见stackoverflow.com/q/493386/2800918 -
@CAB 有意义
标签: python regex newline python-2.x