如何将多个值写入文本文件中的一行

时间:2011-08-03 18:14:18

标签: python

我有一个数字和字符串,a,x,y和z。我想将它们写入一个文本文件,其中所有这些值都在一行中。例如,我想要文本文件说:

a1 x1 y1 z1
a2 x2 y2 z2
a3 x3 y3 z3
a4 x4 y4 z4

有一个循环,每次循环完成一个循环,我想在给定时间将所有变量写入一个新的文本行。我该怎么做?

2 个答案:

答案 0 :(得分:7)

with open('output', 'w') as fp:
    while True:
        a, x, y, z = calculate_a(), calculate_x(), calculate_y(), calculate_z()
        fp.write('{} {} {} {}\n'.format(a, x, y, z)

或者,如果您想收集所有值,然后一次性写入所有值

with open('output', 'w') as fp:
    lines = []
    while True:
        a, x, y, z = calculate_a(), calculate_x(), calculate_y(), calculate_z()
        lines.append('{} {} {} {}\n'.format(a, x, y, z))
    fp.writelines(lines)

答案 1 :(得分:1)

lulz的单行:

open('file','w').writelines(' '.join(j+str(i) for j in strings) + '\n' for i in range(1,len(strings)+1))

如果需要,您可以将文件操作与with分开。 您必须提供strings = 'axyz'strings = ['some', 'other', 'strings', 'you', 'may', 'have']

而且,如果您的号码不是1, 2, 3, 4,请将range(1,len(strings)+1)替换为您的列表...