如何在Python中一次调用write将浮点元组以空格分隔写入文件?

2 投票
2 回答
1730 浏览
提问于 2025-04-17 00:11

假设我有一个浮点数的列表,我想把它写入一个文件。我正在使用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')

撰写回答