小能豆

如何在python中从文本文件读取数字数组

py

我写的代码如下:

array = [[1.630217208498539], [0.019929319226538452]] 
fo = open("file.txt", "w")
fo.write(str(array))
fo.close()

这将把数组保存在.txt文件中,.txt文件中的内容在二维数组中如下:

[[1.630217208498539], [0.019929319226538452]]

我希望这个数组返回到另一个程序,以便我可以使用该数组进行进一步的计算(读取的数组不应该是字符串)


阅读 23

收藏
2024-11-07

共1个答案

小能豆

为了将数据从一个程序保存到文件并在另一个程序中读取成实际的数组结构,而不是字符串,你可以使用 json 模块或 pickle 模块来实现更简便的序列化和反序列化。以下是两种方法的示例:

方法 1:使用 json 模块

json 是一种轻量级的数据交换格式,非常适合存储简单的结构(如列表、字典等)。但是,请注意 json 不支持保存 numpy 数组或其他复杂的 Python 数据类型。

保存数组到文件

import json

array = [[1.630217208498539], [0.019929319226538452]]
with open("file.json", "w") as fo:
    json.dump(array, fo)  # 使用 json.dump() 将数组写入文件

从文件读取数组

import json

with open("file.json", "r") as fo:
    array = json.load(fo)  # 使用 json.load() 将数据从文件中读回
print(array)  # 输出:[[1.630217208498539], [0.019929319226538452]]
print(type(array))  # 输出:<class 'list'>

方法 2:使用 pickle 模块

pickle 模块可以存储任意 Python 对象,因此它更通用。如果你需要存储复杂的数据结构,可以选择 pickle

保存数组到文件

import pickle

array = [[1.630217208498539], [0.019929319226538452]]
with open("file.pkl", "wb") as fo:
    pickle.dump(array, fo)  # 使用 pickle.dump() 将数据以二进制写入文件

从文件读取数组

import pickle

with open("file.pkl", "rb") as fo:
    array = pickle.load(fo)  # 使用 pickle.load() 从文件中读回数据
print(array)  # 输出:[[1.630217208498539], [0.019929319226538452]]
print(type(array))  # 输出:<class 'list'>

选择哪个方法?

  • 如果你只需要存储简单的数据结构并且可能与其他语言(如 JavaScript)交互,使用 json 是更合适的选择。
  • 如果你的数据结构较为复杂或者你只在 Python 环境中处理数据,pickle 更加灵活。
2024-11-07