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

dies ermöglicht mir, was ich will zu dieser Liste hinzuzufügen. Gibt es jedoch eine Möglichkeit, dass ich die Änderungen in der Liste beibehalten kann, sodass, wenn ich das Programm später ausführe, alle Dinge, die ich zuvor geschrieben habe, auf der Liste stehen?Änderungen in Python speichern

EDIT: Wenn es darauf ankommt, verwende ich PyCharm zur Codierung und läuft mein progams

+1

Speichern Sie die Liste in eine Textdatei oder wo auch immer. Dann können Sie einfach die Liste von der Quelle laden und neue Datensätze anhängen. – Eduard

+1

Sie müssten die Liste in einem permanenten Speicher (z. B. einer Datei, einer Datenbanktabelle) ablegen und beim Programmstart lesen. – Mureinik

+0

Dies kann helfen: [Python pickle/pickle eine Liste zu/von einer Datei] (http://stackoverflow.com/questions/18229082/python-pickle-unpickle-a-list-to-from-a-file) –

Antwort

1

Sie json hier verwenden können.

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')) 

Dieser Inhalt in einer Datei namens database.json speichert, können Sie das Programm mit CTRL+C

+0

Gupta Ich habe das versucht, aber als ich das Programm ein zweites Mal ausgeführt habe, wurde der Listeninhalt entfernt –

+0

Sie schlossen das Programm mit? –

+0

PyCharm, und ich möchte in der Lage sein, es auch in PyCharm zu schließen –

0

Sie eine Persistenz-Schicht, dh ein Dateisystem, Datenbank, pickle usw. shelve müssten enden, wo Sie kann die Daten, die in list vorhanden sind, nach Beendigung des Programms speichern. Wenn Sie das Programm erneut ausführen, stellen Sie sicher, dass es aus demselben Persistenzspeicher geladen wird, ohne es auf zu initialisieren. Auf diese Weise können Sie die an die Liste angehängten Elemente speichern.

Python bietet viele Alternativen, wie here

0

Sie müssen irgendwo zuerst die Liste speichern und sie dann zu Beginn des Programms laden. Da es nur eine einfache Liste ist, können wir einfach Python-Gurke verwenden, um es wie folgt auf der Festplatte zu speichern:

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) 
Verwandte Themen