import sys
def fix_rows(it, n):
row = ''
for line in it:
if row:
row = row.rstrip('\n') + ' ' + line
else:
row = line
if row.count('|') == n - 1:
yield row
row = ''
if row:
yield row
with open('a.csv') as f:
sys.stdout.writelines(fix_rows(f, 3))
输出:
aaa|xyz|pqr
another|column with line break | last column
您描述的是一个三字段记录,遵循以下模式:
如果F3确实有一个CR,那么哪个记录是哪个就不明确了,因为您不知道CR是终止记录还是嵌入到F3或下面的F1字段中。你知道吗
您可以轻松地用Perl中的正则表达式解析我所描述的内容:
它的工作原理是使用正则表达式将记录从流中分离出来。你知道吗
Live regex来说明它是如何工作的。你知道吗
Python解决方案:
输出:
你可以试试这个
awk
更具可读性的
awk
版本:测试:
它正在为您的示例输入工作。你知道吗
相关问题 更多 >
编程相关推荐