2016-07-08 103 views
0
list = [] 
while True: 
    list.append(input()) 
    print(list) 

這允許我添加任何我想要的列表。但是,有沒有辦法讓我可以將更改保留在列表中,以便稍後運行程序時,我之前編寫的所有內容都將列在列表中?Python保存列表更改

編輯:如果它的事項,我用PyCharm編碼和運行我progams

+1

考慮將列表保存到文本文件或任何地方。然後,您可以從源加載列表並追加新記錄。 – Eduard

+1

您需要將列表轉儲到某些持久性存儲(例如文件,數據庫表),並在程序啓動時讀取它。 – Mureinik

+0

這可能有助於:[Python pickle/unpickle list to/from a file](http://stackoverflow.com/questions/18229082/python-pickle-unpickle-a-list-to-from-a-file) –

回答

1

可以使用json這裏。

import json 
try: 
    list = json.load(open("database.json")) 
except: 
    list = [] 
while True: 
    try: 
     list.append(input()) 
     print(list) 
    except KeyboardInterrupt: 
     json.dump(list, open('database.json', 'w')) 

此存儲內容在一個名爲database.json,你可以用CTRL+C

+0

Gupta我嘗試過,但是當我第二次運行程序時,列表內容已被刪除 –

+0

您正在使用關閉程序嗎? –

+0

PyCharm,我希望能夠在PyCharm中關閉它 –

0

結束程序,您將需要一個持久層即文件系統,數據庫,pickleshelve等在那裏你一旦程序終止,可以存儲list中的數據。當您重新運行程序時,請確保它從相同的持久性存儲加載,而無需將其初始化爲[],這就是您將如何將附加到列表的元素存儲起來的方式。

Python提供了許多替代所描述的here

0

您需要先保存在某個地方的列表,然後在程序開始加載它。由於它只是一個簡單的列表,我們可以使用python pickle將其保存到磁盤,如下所示:

import pickle 

try: 
    with open('list.p', 'rb') as f: 
     list = pickle.load(f) 
except: 
    list = [] 
while True: 
    try: 
     list.append(input()) 
     print(list) 
    except KeyboardInterrupt: 
     with open('list.p', 'wb') as f: 
      pickle.dump(list, f)