将动态值存储在数据结构中

时间:2015-10-09 09:53:03

标签: python dictionary global persist

每当我运行程序时,我都会有一些文本存储在数组'A'(全局数据结构)中。

现在,下次我运行相同的程序时,我想将新文本追加到同一个数组'A'。

例如:我第一次运行程序时,输入值(1,12,32)被添加到数组A中,下次我运行带有输入值的相同程序(18,7,92)..我想要得到的数组为[1,12,32,18,7,92]

所以基本上每次运行程序时,都应该将新的输入数据附加到该全局数组。

我怎样才能做到这一点?

谢谢。

3 个答案:

答案 0 :(得分:2)

尝试使用pickle模块:

import pickle
data = [int(el) for el in raw_input().split()]
try:
    new = pickle.load(open("save.p", "rb")) + data
except IOError:
    new = data
pickle.dump(new, open("save.p", "wb"))
print pickle.load(open("save.p", "rb"))

答案 1 :(得分:1)

我会调查pickle,这样你的数据结构将保持为python类型,而不是解析纯文本文件。

import pickle
import sys

new_array = map(int, sys.argv[1:])

try:
     with open("datafile", "r") as fin:
         old_array = pickle.load(fin)
except IOError:
    # File doesn't exist
    old_array = []

with open("datafile", "w") as fout:
    pickle.dump(old_array + new_array)

请注意,这将尝试将任何命令行参数转换为int s(我这样做是因为您的示例仅包含int s)。

答案 2 :(得分:0)

很简单,您需要以append模式打开文件

file_ = open("MyFile.txt",'a')

input_ = whatever
file_.write(input)