Używam najnowszego wydania Pythona, a po wyszukiwaniu nie mogę znaleźć niczego na piklach, które będzie dla mnie działać.Składnia pikle Pythona
Po prostu przechodzę przez samouczki, próbując nauczyć się o trawieniu i żaden z kodu źródłowego, który najwyraźniej działa na samouczkach, nie zadziała dla mnie, podejrzewam, że ma to coś wspólnego z nieaktualnymi tutorialami.
Co próbowałem i to samo, co pokazują tutoriale jest:
import pickle
lists = [1,2,3,4,5]
pickle.dump(lists, open('log.txt', 'a+'))
która daje mi następujący błąd:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
pickle.dump(lists, open('log.txt', 'a+'))
TypeError: must be str, not bytes
to
>>> import pickle
>>> unpicklefile = open('log.txt', 'r')
>>> unpickledlist = [1,2,3,4,5]
>>> unpickledlist = pickle.load(unpicklefile)
daje mi następujący błąd:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
unpickledlist = pickle.load(unpicklefile)
TypeError: 'str' does not support the buffer interface
Dziękuję za odpowiedzi i pomoc
Twój kod działa poprawnie dla mnie bez błędów (z wyjątkiem dopasowania nazw plików). Więc ** jaki błąd rzeczywiście dostałeś **? –
edytował pytanie –
Wygląda na to, że podążacie za tutorialem zaprojektowanym dla Pythona 2.x, podczas gdy wydaje się, że faktycznie używacie Pythona 3.x. Istnieją subtelne różnice i jeśli chcesz używać Pythona 3.x, najlepiej postępować zgodnie z samouczkiem zaprojektowanym dla tej wersji. –