Python 我如何成功';追加';一个文本文件并添加到其中?

Python 我如何成功';追加';一个文本文件并添加到其中?,python,Python,当用户选择“否”时,系统会提示他们创建帐户。 我的问题是,当他们输入详细信息,然后创建帐户时,文本文件中没有添加任何内容 文本文件的格式为“用户名:密码” 没有语法错误发生旁注:您不应该手动打开和关闭文件,请使用上下文管理器和为您管理它的。您只能检查文件中的第一个用户。物理学家:事实上,它比那更糟糕。它们从不写换行符,因此如果文件中有第二个用户,readline会同时获得这两个用户,并且(除非输入用户名或带有冒号的密码),即使第一个用户也不会匹配,因为它将与所有用户及其密码的串联进行比较。@no

当用户选择“否”时,系统会提示他们创建帐户。 我的问题是,当他们输入详细信息,然后创建帐户时,文本文件中没有添加任何内容

文本文件的格式为“用户名:密码”


没有语法错误发生

旁注:您不应该手动打开和关闭文件,请使用上下文管理器
和为您管理它的
。您只能检查文件中的第一个用户。物理学家:事实上,它比那更糟糕。它们从不写换行符,因此如果文件中有第二个用户,
readline
会同时获得这两个用户,并且(除非输入用户名或带有冒号的密码),即使第一个用户也不会匹配,因为它将与所有用户及其密码的串联进行比较。@noaaa:您怎么知道文本文件中没有添加任何内容?您是在查看文件本身,还是只是基于无法进行身份验证而猜测?如果是通过查看文件本身,您确定工作目录(不同于脚本目录)是您所认为的吗?可能(对于通过
PATH
lookup启动的脚本,很可能)工作目录不同,并且您的所有登录信息都被写入目录中的
logins.txt
(如果每次启动来自不同的工作目录,则会有多个)您不希望这样。修复工作目录问题可以通过提供到
logins.txt
的绝对路径,或根于
sys.exec_prefix
(使其相对于Python本身)或
\uu file___
(使其相对于脚本位置)的相对路径来完成。
def runlogin():
    if choice1 == "yes":    
        username=input("Enter your username")
        password=input("Enter your password")

        file = open("logins.txt","r")
        if (file.readline()) == (username+":"+password):
            print("Access Granted")
        else:
            print("Access Denied")


print("Welcome")
choice1=input("Have you already created an account? ('yes' or 'no')")
choice1=choice1.lower()

if choice1 == "no":
    createusername=input("Please enter a username")
    createpassword=input("Please enter a password")
    filefile=open("logins.txt","a")
    filefile.write(createusername+":"+createpassword)
    print("Account created, redirecting to login page")
    filefile.close()


if choice1 == "yes":    
    runlogin()