Python文本文件附加错误

时间:2017-06-06 12:43:17

标签: python python-2.7

所以我被提出制作一个使用文本文件存储密码的程序,以免忘记密码。文本文件位于下方。(Passwords.txt)

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

所以,对此我想添加一个新行,它将是: 'Application3':['Username3','Password3'] 但是,当我运行以下代码时,它告诉我一个错误,说str不可调用。 (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

我正在尝试学习python代码以学习如何,但我看不出问题......有人可以给我建议吗?

2 个答案:

答案 0 :(得分:2)

正如在另一个答案中所说,问题是写入文件时的字符串处理。我建议使用字符串格式:

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

请参阅https://pyformat.info/

推荐代码:

# 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))

如果您使用with open(...) as ...:,则无需调用close方法,当您退出with的范围时,系统会自动调用该方法。

答案 1 :(得分:0)

您的问题是当您尝试写入文件时。将其更改为

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