如何在Python中一次调用write将浮点元组以空格分隔写入文件?
假设我有一个浮点数的列表,我想把它写入一个文件。我正在使用Python。我希望所有的元素之间用空格分开,而且我不想多次调用写入函数。下面的代码展示了如何写入,但它是用逗号分隔的...
arr [-12.0, 1.7, -5.5, 4.0]
f = open("data.dat","w")
f.write(str(arr))
f.close()
这个列表在文件中的写法是这样的(带有逗号和方括号)
[-12.0, 1.7, -5.5, 4.0]
我想要的写法是这样的,只用一次写入调用
-12.0 1.7 -5.5 4.0
非常感谢。
2 个回答
2
li = [-12.0, 1.7, -5.5, 4.0]
with open("data.dat","w") as f:
f.write(" ".join(map(str,li)))
用li而不是arr,因为在Python中,数组是这样的
你应该考虑使用:
f.write("\t".join(map(str,li)))
这样可以用制表符代替空格
顺便说一下,如果你想在文件末尾添加数据,把模式从'r'
改成'a'
,否则如果文件里已经有同名的内容,你会把之前的数据全部删除掉
6
因为arr
里的元素不是字符串,所以在把它们合并之前,你得先把它们转换成字符串。
with open("data.dat","w") as f:
f.write(' '.join(map(str,arr)))
另外,既然这个问题是关于numpy
的,你也可以使用np.savetxt
来处理。
np.savetxt('data.dat',(arr,),delimiter=' ',fmt='%g')