nb1とnb2をリストに変更し、各追加'\ n'に列の値を追加して、新しい行に書き込まれるようにしました。出力ファイルには、列2の値の上に列1の値が含まれる単一の列があります。このアプローチはほとんどの場合うまく機能しますが、非常に大きなファイルを処理する場合、この方法は大量のメモリを使用します。それが問題である場合は、最初に最初の列をファイルに書き込み、次に2番目の列を書き込む2つのパスで出力ファイルを作成できます。
nb1 = []
nb2 = []
with open('input.txt','r') as input_data:
for line in input_data:
column = line.strip().split()
nb1.append(column[0]+'\n')
if len(column) == 2:
nb2.append(column[1]+'\n')
with open('output.txt','w') as f:
f.writelines(nb1)
f.writelines(nb2)
最初の要素の下の各行に2番目の要素が必要な場合は、このより単純でメモリに優しい構文を使用できます。
with open('input.txt','r') as input_data:
with open('output.txt','w') as f:
for line in input_data:
column = line.strip().split()
f.write(column[0]+'\n')
f.write(column[1]+'\n')