Witam, od długiego czasu próbuje napisać pogram który doda zapisze punktacje w pliku binarnym, chce aby program dopisywał przy każdym uruchomieniu punktacje i aby była możliwość sprawdzenia wyników.
Niestety udało mi się tylko stworzyć program który zapisuje i odczytuje z pliku, ale problem jest że nie dopisuje a zmienia.(usuwa stare i zapisuje nowe)
program jest w fazie początkowej ale tu nie chodzi o program tylko o tą funkcje
Sam już nie wiem czy zmienna która chce zapisywać powinna się zmieniać czy zapis pliku szwankuje,
Proszę o pomoc
import pickle, shelve
scores = []
def dane_gracza():
name = input("wprowadź swój Nick")
global name
return name
def instrukcjia():
print("""
Witaj """, name, """
w
xxxx
POWODZENIA!!!""")
input("Jeśli jestes gotowy wcisnij enter")
def pięć_lini():
text_file = open("pytania.txt", "r")
global linia
linia = text_file.readline()
for i in range(5):
linia = text_file.readline()
print(linia)
x = input("Podaj odpowiedz ")
global score
score = 0
score = int(score)
if x == "b": # 1
score += 1
#tu jest dalsza część powtarzającego sie kodu ale usunałem aby skrócić
def gratulacje():
print("Gratuluje", name, "zdobyłeś", score, "/20 punktów")
def dodawanie():
entry = (score, name)
scores.append(entry)
def zapisywanie():
s = shelve.open("pikle2.dat", "c") #TUTAJ MAM PROBLEM
s[""] = (scores)
s.sync()
def main():
dane_gracza()
instrukcjia()
pięć_lini()
gratulacje()
dodawanie()
zapisywanie()
choice = None
while choice != "0":
print(
"""
0 - zakończ
1 - zagraj
2 - sprawdź wyniki
"""
)
choice = input("Wybierasz: ")
print()
if choice == "0":
print("Do widzenia.")
elif choice == "1":
main()
elif choice == "2":
print("GRACZ\tWYNIK")
s = shelve.open("pikle2.dat", "r") #TUTAJ MAM PROBLEM
print("", s[""])
else:
print("Niestety,", choice, "nie jest prawidłowym wyborem.")
input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
Dziękuje.