我将 nb1 和 nb2 更改为列表,并将列值附加到每个添加的 '\n' 中,以便将它们写入新行。输出文件有一个列,其中第 1 列的值位于第 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)
如果您想要在第一个元素下的每一行中的第二个元素,您可以使用这种更简单、对内存更友好的语法。
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')