每当我运行程序时,我都会有一些文本存储在数组'A'(全局数据结构)中。
现在,下次我运行相同的程序时,我想将新文本追加到同一个数组'A'。
例如:我第一次运行程序时,输入值(1,12,32)被添加到数组A中,下次我运行带有输入值的相同程序(18,7,92)..我想要得到的数组为[1,12,32,18,7,92]
所以基本上每次运行程序时,都应该将新的输入数据附加到该全局数组。
我怎样才能做到这一点?
谢谢。
答案 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)