通过Python通过分隔符计算汇总行

时间:2017-04-03 06:37:34

标签: python delimited-text

我有一个巨大的'|'分开的文件。某些线条已经分成两行并转移到下一行。鉴于,我知道每行中的分隔符数量(比如100)如何将其附加到上半部分以获得完整的正确记录。

我已经尝试了以下但是它没有按预期工作:

with open(file_name) as f:
    for line in f:
        lis.append(line)

file_object=open(out_file,'w+')
for x in range(len(lis)):
    line=lis[x]
    delim_count=line.count('|')
    if(delim_count==100):
        file_object.write(line)
    elif(delim_count<100):
        `file_object.write(lis[x]+lis[x+1])        
    x=x+1
file_object.close()

1 个答案:

答案 0 :(得分:1)

你的代码差不多了。

你可以有一个累加器来累积行,直到分隔符的数量为100.注意你必须删除行尾的\ n字符。

以下是您的代码的改进版本:

with open(file_name, 'r') as fin:
    with open(out_file, 'w+') as fout:
        accum_line = ''
        for line in fin:
            accum_line += line.rstrip('\n')    # remove '\n' here
            if accum_line.count('|') == 100:
                fout.write(accum_line + '\n')  # add '\n' here
                accum_line = ''