Python 在运行时更改源代码

2 投票
1 回答
3283 浏览
提问于 2025-04-17 17:02

对于那些懂的人来说,这些问题很简单,但对我来说却挺难的,因为我觉得这在实际操作中可能不太可行。

在写完一个简单的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()

撰写回答