python在运行时更改源代码

时间:2013-02-25 13:21:38

标签: python

对于那些知道的人来说,简单的问题,对我来说很难,因为我认为这不是偶然的。

制作一个简单的python程序后,可以在计算机的命令提示符下运行它。

我想知道或者是否可以允许以这种方式运行它的人,将一个元素添加到列表(list.insert)并在下次运行程序时将其保留在那里?(从而编辑预定义列表到新列表并以此方式保存它)

编辑:只是提供更多信息:

所有程序所要做的就是允许您选择列表。从该列表中返回一个随机项。 我只是希望允许在运行程序时将项添加到此列表中,之后保持列表更新。

1 个答案:

答案 0 :(得分: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()