2016-01-18 1 views
0

Besoin d'aide ne peux pas écrire dans le fichier par ordre alphabétiqueécriture Python Txt par ordre alphabétique

class_name = "class 1.txt" #adds '.txt' to the end of the file so it can be used to create a file under the name a user specifies 
with open(class_name , 'r+') as file: 
    name = (name) 
    file.write(str(name + " : ")) #writes the information to the file 
    file.write(str(score)) 
    file.write('\n') 
    lineList = file.readlines() 
    for line in sorted(lineList): 
     print(line.rstrip()) 
+0

quel est le nom et le score? –

Répondre

0

Vous devez remplacer le fichier par les nouvelles données (alphabétiques). C'est MASSIVEMENT plus facile que d'essayer de suivre file.seek appels (qui sont mesurés en octets, pas de lignes ou même des caractères!) Et pas significativement moins performant.

with open(class_name, "r") as f: 
    lines = f.readlines() 

lines.append("{name} : {score}\n".format(name=name, score=score)) 

with open(class_name, "w") as f: # re-opening as "w" will blank the file 
    for line in sorted(lines): 
     f.write(line) 
+0

merci beaucoup –

0

Vous avez besoin d'appels de file.seek pour régler la lecture/écriture position en conséquence. Pour des explications, voir seek() function?.