我有一个巨大的'|'分开的文件。某些线条已经分成两行并转移到下一行。鉴于,我知道每行中的分隔符数量(比如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()
答案 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 = ''