2017-03-12 3 views
1

Hallo Ich habe ein seltsames Problem mit meiner Bestenliste in Python. Ich habe die Player-Score-Variable, die in die Datei geschrieben wird, das funktioniert normalerweise aber manchmal schreibt es nur 0 statt der Zahl, die sie erzielten. Dies passiert nur gelegentlich, aber es muss behoben werden. Ich denke, es hat etwas mit der Verzögerung zu tun, die verwendet wird, bevor playerscore = 0 gesetzt wurde, aber ich bin mir nicht sicher, was ich ändern sollte, um es zu beheben. Code unten.Python .CSV Leaderboard Write - Punktzahl nach dem Zufallsprinzip nicht speichern

with open('Leaderboard.csv', 'a', newline='') as filepath: 

         a = csv.writer(filepath, delimiter=',') 

         data = [[PlayerScore, player_name]] 

         a.writerows(data) 

       f = open('Leaderboard.csv') 

       csv_f = csv.reader(f) 
       name = [] 
       for row in csv_f: 
         name.append(row) 

       f.close() 
       print(PlayerScore) 
       # set PlayerScore to 0 
       pygame.time.delay(100) 
       PlayerScore = 0 
+3

Beginnen Sie mit der Formatierung Ihres Codes – e4c5

+1

Stellen Sie sicher, dass der Code vollständig ist (http://stackoverflow.com/help/mcve), damit wir ihn ausführen und analysieren können, ohne ihn vorher zu ändern. – skrx

+0

Es scheint, dass es nicht möglich ist, den Fehler zu reproduzieren, also poste ein komplettes und überprüfbares Beispiel. – skrx

Antwort

0

Try this:

import csv 


PlayerScore = 25 
player_name = 'Fry' 

# Append to the csv. 
with open('Leaderboard.csv', 'a', newline='') as file: 
    writer = csv.writer(file) 
    writer.writerow((PlayerScore, player_name)) 

# Read the csv. 
with open('Leaderboard.csv', 'r', newline='') as file: 
    score_list = list(csv.reader(file)) 
    for row in score_list: 
     print(row) 

# Afterwards reset the score and name if you have to. 
PlayerScore = 0 
player_name = '' 

Vergessen Sie nicht, die Noten von Strings in Ints (oder Schwimmer) zu konvertieren, wenn man sie richtig sortiert werden sollen, sonst würden sie lexikographisch sortiert bekommen.

+1

Das scheint zu funktionieren, danke für Ihre Hilfe. – BoJ

Verwandte Themen