2015-01-13 19 views
7

Mam listę w moim programie. Mam funkcję dopisywania do listy, niestety po zamknięciu programu dodane przez ciebie rzeczy znikną i lista sięga do początku. Czy istnieje sposób, w jaki mogę przechowywać dane, aby użytkownik mógł ponownie otworzyć program, a lista jest pełna.Python Przechowywanie danych

Odpowiedz

4

Możesz utworzyć bazę danych i zapisać je, jedynym sposobem jest to. Baza danych z SQLITE lub plikiem .txt. Na przykład:

with open("mylist.txt","w") as f: #in write mode 
    f.write("{}".format(mylist)) 

Twoja lista przechodzi do funkcji format(). Będzie to plik .txt o nazwie mylist i zapisze w nim dane z listy.

Po tym, gdy chcesz uzyskać dostęp do swoich danych ponownie, można zrobić:

with open("mylist.txt") as f: #in read mode, not in write mode, careful 
    rd=f.readlines() 
print (rd) 
4

Wbudowany moduł pickle zapewnia pewne podstawowe funkcje dla serializacji, który jest terminem do toczenia dowolnych obiektów w coś odpowiedniego do zapisania na dysk. Sprawdź dokumentację dla Python 2 lub Python 3.

marynacie nie jest bardzo solidna, choć i dla bardziej złożonych danych będziesz prawdopodobnie chciał zajrzeć do modułu bazy danych, takich jak wbudowany sqlite3 lub pełnoprawny obiektowo-relacyjnego mapowania (ORM) jak SQLAlchemy .

8

Możesz spróbować moduł pickle do przechowywania danych w pamięci na dysku, Oto przykład:

magazyn danych: dane

import pickle 
dataset = ['hello','test'] 
outputFile = 'test.data' 
fw = open(outputFile, 'wb') 
pickle.dump(dataset, fw) 
fw.close() 

obciążenie:

import pickle 
inputFile = 'test.data' 
fd = open(inputFile, 'rb') 
dataset = pickle.load(fd) 
print dateset 
+1

Dla 'marynaty. dump() 'i' .load() 'wywołania do pracy, w twoich wywołaniach' open() 'możesz potrzebować odpowiednio przekazać flagi' 'wb" 'i' 'rb" '. [Więcej informacji w tej odpowiedzi SO] (https://stackoverflow.com/a/13906715/4461425). –

+1

aktualizacja, aby dodać otwartą flagę –

Powiązane problemy