2017-04-03 4 views
0

私は巨大な '|'ファイルを区切ります。 2つに折れて次の行に移動した特定の行があります。私は、各行の区切り文字の数を知っています(たとえば100)、これを最初の半分に追加して正しいレコードを得るにはどうすればよいですか?Pythonを介した区切り文字によるロールアップ行

私は以下試してみましたが、期待どおりに動作しません:

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

あなたのコードはほとんどそれをやっていました。

セパレータの数が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 = '' 

はここにあなたのコードの改良版です

関連する問題