我有一个数字和字符串,a,x,y和z。我想将它们写入一个文本文件,其中所有这些值都在一行中。例如,我想要文本文件说:
a1 x1 y1 z1 a2 x2 y2 z2 a3 x3 y3 z3 a4 x4 y4 z4
有一个循环,每次循环完成一个循环,我想在给定时间将所有变量写入一个新的文本行。我该怎么做?
答案 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)
替换为您的列表...