什么是在python中保存元组的最佳方法

Ros*_*osy 7 python

我有一个函数,它返回一个包含数字,字符串和数组的元组(1, 2, 3, [[1,2,3],[4,5,6]], ['a','b','c']).例如,.我需要运行我的功能100次并保存所有结果.我想将每个结果保存为文本文件.所以我可以有这样的100*.txt文件:

my number1: 1
my number2: 2
my number3: 3
My array:   [[1,2,3],[4,5,6]]
My Names:   ['a','b','c']
Run Code Online (Sandbox Code Playgroud)

如何编写python代码?

是否有更好的方法来保存结果,以便将来轻松重新访问数据?

rbp*_*rbp 10

是的,您可以import pickle使用pickle.dump()pickle.load()读取和写入文件.

以下是将其写入文件的方法:

data = (1, 2, 3, [[1,2,3],[4,5,6]], ['a','b','c'])
with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)
Run Code Online (Sandbox Code Playgroud)

请阅读:

with open('data.pickle', 'rb') as f:
     data = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)

  • 他写了“是否有更好的方法”,所以我认为他愿意接受建议 (2认同)
  • `open('data.pickle','r')`应该是`open('data.pickle','rb')`.因为如果要将其写入二进制文件,则应从二进制文件中读取它.否则你会得到一个编码错误 (2认同)

DXM*_*DXM 5

如果您希望轻松地跨语言重新访问数据,可以使用 JSON。

import json
data = (1, 2, 3, [[1,2,3],[4,5,6]], ['a','b','c'])
#save your data to a json file
with open('data01.json', 'w') as fjson:
    json.dump(data, fjson)

#json file can easily be read using other languages as well
with open('data01.json', 'r') as fjson:
    revis_data = json.load(fjson)
Run Code Online (Sandbox Code Playgroud)

注意:revis_data转换为列表,不再是元组。如果你希望它在重新加载后仍然是一个元组,只需这样做tuple(revis_data)