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
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)
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 .
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. Przechowywanie danych w pamięci
- 2. Przechowywanie danych do NSUserDefaults
- 3. Złomowanie: przechowywanie danych
- 4. Przechowywanie danych w pamięci
- 5. Przechowywanie danych w FirefoxOS
- 6. Przechowywanie listy ciągów do zestawu danych HDF5 z Python
- 7. Listy Przechowywanie Python w SQL Database
- 8. Przechowywanie danych lokalnie na iPhone
- 9. Przechowywanie ogromnych danych w SQLite
- 10. Przechowywanie danych do analizy finansowej
- 11. Przechowywanie tablic w bazach danych
- 12. Przechowywanie danych literowych w łańcuchach C++
- 13. Przechowywanie widoków ASP.Net MVC w bazie danych
- 14. Przechowywanie długich ciągów binarnych (danych surowych)
- 15. Trwałe przechowywanie zaszyfrowanych danych przy użyciu .Net
- 16. Przechowywanie tablicy całkowitej w bazie danych Django
- 17. Przechowywanie danych w aplikacji Google App Engine
- 18. Przechowywanie pozwoleń na aplikacje w bazie danych
- 19. Przechowywanie opcjonalnego NSNumber w danych podstawowych
- 20. Przechowywanie NSImage w modelu danych podstawowych
- 21. Przechowywanie częściowych dat w bazie danych
- 22. Przechowywanie i porównywanie obiektów z bazy danych
- 23. Przechowywanie obiektów R w relacyjnej bazie danych
- 24. Baza danych a przechowywanie systemu plików
- 25. Przechowywanie wartości NaN w bazie danych SQLite
- 26. Przechowywanie rozmiarów plików w bazie danych
- 27. Historyczne przechowywanie danych w MongoDB - najlepsza praktyka?
- 28. JSF Przechowywanie danych w pliku cookie
- 29. Przechowywanie danych do SequenceFile z Apache Pig
- 30. Przechowywanie danych relacyjnych w indeksie Lucene.NET
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). –
aktualizacja, aby dodać otwartą flagę –