2017-06-06 2 views
-2

So wurde ich mit der Erstellung eines Programms vorgestellt, das eine Textdatei verwendet, um Passwörter zu speichern, um sie nicht zu vergessen. Die Textdatei ist unter (Passwords.txt)Python Textdatei Append Fehler

'Application1': ['Username1', 'Password1'] 
    'Application2': ['Username2', 'Password2'] 

dazu So würde Ich mag eine neue Zeile hinzufügen, die sein würde. ‚Anwendung3‘: [ ‚Username3‘, ‚Kennwort3‘] jedoch Wenn ich den folgenden Code ausführe, sagt er mir einen Fehler, der besagt, dass str nicht aufrufbar ist. (Passwordsappend.py)

hp = open("Passwords.txt","a") #open the file 

    key = raw_input("Which app: ") 
    usr = raw_input("Username: ") 
    psw = raw_input("Password: ") #make variables to add 



    hp.write('\n\''(key)'\': ''[\''(usr)'\', ' '\''(psw)'\'],') #make it so that it's like the rest of the file 

    hp.close() #close the file 

Ich habe versucht, Python-Codes zu studieren, um zu lernen, wie man, aber ich kann das Problem nicht sehen ... Kann mir jemand Ratschläge geben?

+0

Sie sehen aus wie Sie könnten eine gute 'ole-Tutorial zu diesem Thema verwenden. lese die Übungen 6, 7, 8 und 9 von [This] (https://learnpythontehardway.org/book/) durch. Dies wird Ihnen einen etwas besseren Ausgangspunkt für das klassische String-Handling geben. Sie können auf ein anderes Format stoßen, das dort nicht erwähnt wird und als Python-String-Formatierung bezeichnet wird. Dies ist eine leistungsfähigere Formatierungsmethode (f-strings und 'string.format()'), aber die klassische Methode ist mehr Standard zwischen den Sprachen und ist daher notwendig zu wissen. – Aaron

Antwort

0

Ihr Problem ist, wenn Sie versuchen, in die Datei zu schreiben. Ändern Sie es in

hp.write('\n\'' + key + '\': ''[\'' + usr + '\', ' '\'' + psw +'\']') 
2

Wie in einer anderen Antwort das Problem ist Ihre Zeichenfolge beim Schreiben in die Datei. Ich würde empfehlen, String-Formatierung zu verwenden:

hp.write("\n'%s': ['%s', '%s']" % (key, usr, psw)) 

Siehe https://pyformat.info/

Empfohlene Code:

# Ask for variables to add 
key = raw_input("Which app: ") 
usr = raw_input("Username: ") 
psw = raw_input("Password: ") 

# Open file 
with open("Passwords.txt", "a") as hp: 
    # Add line with same format as the rest of lines 
    hp.write("\n'%s': ['%s', '%s']" % (key, usr, psw)) 

Wenn Sie die Verwendung with open(...) as ...: Sie müssen die close Methode nicht nennen, es heißt automatisch wenn Sie den Bereich with verlassen.