我有一个数字列表,我想将它们一起加入或写入文本文件,并将数字的总和放在文件中。
[0.297, 0.344, 0.342, 0.285, 0.333, 0.337, 0.309, 0.334, 0.337, 0.289, 0.342, 0.337, 0.292, 0.337, 0.347, 0.31, 0.335, 0.34, 0.279, 0.331, 0.336, 0.298, 0.338, 0.347, 5.357, 0.342, 0.314, 0.289, 0.358, 0.341, 0.321, 0.336, 0.347, 0.3, 0.336, 0.333, 0.279, 0.334, 0.339, 0.303, 0.335, 0.337, 0.301, 0.329, 0.337, 0.289, 0.335, 0.341, 0.305, 0.332, 0.347, 0.307, 0.332, 0.344, 0.291, 0.334, 0.333, 0.347, 0.345, 0.342, 0.297, 0.338, 0.35, 0.329, 0.336, 0.345, 0.309, 0.344, 0.344, 0.288, 0.332, 0.341, 0.311, 0.343, 0.344, 0.319, 0.332, 0.335, 0.297, 0.337, 0.344, 0.297, 0.334, 0.341, 0.306, 0.332, 0.335, 0.299, 0.332, 0.344, 0.286, 0.332, 0.344, 5.362, 0.348, 0.318, 0.296, 0.345, 0.338, 0.305, 0.343, 0.343, 0.297, 0.332, 0.331, 0.296, 0.334, 0.336, 0.305, 0.341, 0.346, 0.286, 0.337, 0.334, 0.306, 0.342, 0.342, 0.305, 0.332, 0.335, 0.285, 0.331, 0.335, 0.285, 0.334, 0.343, 0.308, 0.333, 0.341, 0.286, 0.338, 0.336, 0.306, 0.342, 0.335, 0.305, 0.342, 0.332, 0.296, 0.332, 0.342, 0.296, 0.342, 0.336, 0.307, 0.343, 0.347, 0.313, 0.328, 0.344, 0.313, 0.338, 0.334, 0.299, 0.337, 0.35, 0.292, 0.348, 0.341, 0.289, 0.335, 0.339, 5.366, 0.358, 0.343, 0.3, 0.338, 0.341, 0.306, 0.343, 0.345, 0.296, 0.332, 0.352, 0.296, 0.333, 0.346, 0.306, 0.342]
我希望它们在一行上,并将总和放在行的顶部,如
sum = 2223.2
numbers are
0.322
0.223
0.312
我尝试加入浮动,但我有错误
blut = '\n'.join(float(diffs))
open('ext.txt', 'w').write(blut)
答案 0 :(得分:1)
您可以先将diff
中的所有数字转换为字符串,然后将其加入\n
:
output = list(map(str, diffs))
blut = '\n'.join(output)
额外list()
适用于Python 3.X,在Python 2.7中是多余的。这假定您的初始列表名为diffs
。
有更多方法可以创建目标输出文件。例如,您可以使用join
一次性写入总和,文本和数字,
with open('ext.txt', 'w') as fout:
fout.write(''.join(['sum = ', str(sum(diffs)), '\nnumbers are\n', blut]))
此处,sum也直接在输入列表中计算为join
并转换为字符串。 blut
已经是字符串列表。 join
使用空字符串作为分隔符,因为输入列表中包含所有必需的空格和换行符。
另一种方法是分割写作并首先添加总和,然后是文本,然后是数字。在这种情况下,您需要在第一次写入后更改w
以附加a
。
答案 1 :(得分:1)
l = [0.297, 0.344, 0.342, 0.285, 0.333, 0.337, 0.309, 0.334, 0.337, 0.289, 0.342, 0.337, 0.292, 0.337, 0.347, 0.31, 0.335, 0.34, 0.279, 0.331, 0.336, 0.298, 0.338, 0.347, 5.357, 0.342, 0.314, 0.289, 0.358, 0.341, 0.321, 0.336, 0.347, 0.3, 0.336, 0.333, 0.279, 0.334, 0.339, 0.303, 0.335, 0.337, 0.301, 0.329, 0.337, 0.289, 0.335, 0.341, 0.305, 0.332, 0.347, 0.307, 0.332, 0.344, 0.291, 0.334, 0.333, 0.347, 0.345, 0.342, 0.297, 0.338, 0.35, 0.329, 0.336, 0.345, 0.309, 0.344, 0.344, 0.288, 0.332, 0.341, 0.311, 0.343, 0.344, 0.319, 0.332, 0.335, 0.297, 0.337, 0.344, 0.297, 0.334, 0.341, 0.306, 0.332, 0.335, 0.299, 0.332, 0.344, 0.286, 0.332, 0.344, 5.362, 0.348, 0.318, 0.296, 0.345, 0.338, 0.305, 0.343, 0.343, 0.297, 0.332, 0.331, 0.296, 0.334, 0.336, 0.305, 0.341, 0.346, 0.286, 0.337, 0.334, 0.306, 0.342, 0.342, 0.305, 0.332, 0.335, 0.285, 0.331, 0.335, 0.285, 0.334, 0.343, 0.308, 0.333, 0.341, 0.286, 0.338, 0.336, 0.306, 0.342, 0.335, 0.305, 0.342, 0.332, 0.296, 0.332, 0.342, 0.296, 0.342, 0.336, 0.307, 0.343, 0.347, 0.313, 0.328, 0.344, 0.313, 0.338, 0.334, 0.299, 0.337, 0.35, 0.292, 0.348, 0.341, 0.289, 0.335, 0.339, 5.366, 0.358, 0.343, 0.3, 0.338, 0.341, 0.306, 0.343, 0.345, 0.296, 0.332, 0.352, 0.296, 0.333, 0.346, 0.306, 0.342]
with open("file.txt", "w+") as f:
s = sum(l)
f.write("sum = {}\n".format(s))
f.write("\n".join(map(str, l)))