我有一个数字和字符串,分别为a、x、y和z。我想将它们写入一个文本文件中,并使所有的值都在一行上。例如,我希望文本文件如下:
a1 x1 y1 z1 a2 x2 y2 z2 a3 x3 y3 z3 a4 x4 y4 z4
每次循环完成后,都要将该时间点的所有变量写入新的文本行。请问如何实现此功能?
我有一个数字和字符串,分别为a、x、y和z。我想将它们写入一个文本文件中,并使所有的值都在一行上。例如,我希望文本文件如下:
a1 x1 y1 z1 a2 x2 y2 z2 a3 x3 y3 z3 a4 x4 y4 z4
每次循环完成后,都要将该时间点的所有变量写入新的文本行。请问如何实现此功能?
with open('output', 'w') as fout:
while True:
a, x, y, z = calculate_a(), calculate_x(), calculate_y(), calculate_z()
fout.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)
一句笑话:
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)
...