首页 > 解决方案 > 在python的txt文件中读取并保存数字列表作为数字

问题描述

我在 python 中有浮点数列表。我想将一些列表保存在 txt 文件中,然后按原样逐个读取它们。但是在我编写了以下代码之后,我发现 str(i) 转换了一个 str 中的每个数字。我不能像他们写的那样读他们。Ps 我有 10,000 个结果列表,所以我想将每个列表保存在一行中。

result = [-0.33434,0.4434, 4343....]
with open("out.txt", w) as out:
  for i in result:
      out.write(str(i)+' ')
 out.write("\n")

标签: pythonpython-3.xlistfile

解决方案


如果您不想使用库来执行此操作,您可以简单地join通过已知分隔符列出每个列表,然后将结果字符串写入文件。

在这里,我假设您有一个名为 的列表列表allResults,其形式为

allResults = [
       [-0.332,434,0.4434,4865],
       [9.456,-0.540,-7.06540,5.05453],
       # ... and so on
    ]

separator = "," 

with open("out.txt", "w") as out_file:
    for l in allResults:
        out_string = separator.join(str(x) for x in l) + "\n"
        out_file.write(out_string)

现在,out.txt包含:

-0.332,434,0.4434,4865
9.456,-0.54,-7.0654,5.05453

然后要读取文件,您可以读取每一行,用分隔符将其拆分,将拆分字符串的每个元素转换为浮点数,然后将该新列表放入列表列表中:

all_lists = []
with open("out.txt", "r") as in_file:
    for line in in_file:
        new_list = [float(x) for x in line.split(separator)]
        all_lists.append(new_list)

现在你有你的列表列表:

all_lists: [[-0.332, 434.0, 0.4434, 4865.0], [9.456, -0.54, -7.0654, 5.05453]]

推荐阅读