Python 在运行时更改源代码
对于那些懂的人来说,这些问题很简单,但对我来说却挺难的,因为我觉得这在实际操作中可能不太可行。
在写完一个简单的Python程序后,可以在电脑的命令提示符下运行它。
我在想,是否有可能让运行这个程序的人在运行时往一个列表里添加元素(用list.insert),并且下次再运行程序时这个元素还能保留在那里?也就是说,把原来的列表编辑成一个新的列表,并以这种方式保存。
补充说明一下:
这个程序的功能就是让你选择一个列表,然后从这个列表中随机返回一个项目。我只是希望在运行程序时能够添加项目到这个列表,并且在之后保持列表的更新。
1 个回答
6
最简单的方法就是使用Pickle模块来保存和加载你的数据到硬盘上:
http://docs.python.org/2/library/pickle.html
http://docs.python.org/2/library/pickle.html#example
下面是我在一个简单程序中如何使用它的示例:
try:
import cPickle as pickle
except ImportError:
import pickle
class MyClass(object):
def __init__(self, file_name):
self.array = []
self.file_name = file_name
self.load_data()
def add_element(self, element):
self.array.append(element)
self.save_data()
def load_data(self):
try:
with open(self.file_name, "r") as f:
self.array = pickle.load(f)
except IOError:
pass
def save_data(self):
with open(self.file_name, "w") as f:
pickle.dump(self.array, f)
def main():
FILE_NAME = "test.pkl"
a = MyClass(FILE_NAME)
print "elements in array are", a.array
for i in range(5):
a.add_element(i)
if __name__ == "__main__":
main()