Python类将空行添加到最后一个值

时间:2020-05-31 17:33:54

标签: python

我试图用python编写一个登录程序。我正在尝试读取用户名,电子邮件和密码并将其添加到文本文件中。读取文件时,我正在使用类使用用户名等创建帐户,并将其存储在我的users []列表中,以便可以使用“ users [3] .username”之类的名称进行访问。一切正常,但我遇到一个问题:打印每个帐户的最后一个值(在本例中为密码)时,还有一个空行。我不希望这样,因为例如在检查密码是否正确时,我不能像那样使用它。

这是代码

class Accounts:
    def __init__(self, username, email, password):
        self.username = username
        self.email = email
        self.password = password

users = []

def add_account(username, email, password):
    file = open("useraccounts.txt", "a")
    file.write(username + ", " + email + ", " + password + "\n")
    file.close()

def read_accounts():
    file = open("useraccounts.txt", "r")
    count = 0
    for line in file:
        count += 1

    file.seek(0)
    for i in range(count):
        x = file.readline()
        x = x.rsplit(", ")
        new_account = Accounts(x[0], x[1], x[2])
        users.append(new_account)
    file.close()

add_account("Banana", "banana@email.com", "1234")
read_accounts()
print(users[0].username)
print(users[0].email)
print(users[0].password)
print("Something")

这是输出的样子

Banana
banana@email.com
1234

Something

使用多个帐户进行交易以及手动编写文本文件而不使用add_account函数时也会发生这种情况。 我确定问题是我的read_accounts函数,因为在手动创建这样的帐户时不会发生此问题

account = Accounts("Banana", "banana@email.com", "1234")

由于这是我的第一个程序,因此如果您还有其他提示,请告诉我。

1更多:最初,我的帖子以“嘿家伙”开头,但被删除了。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

file.readline()不会从行尾去除换行符,因此,当您将其分割时,换行符仍附加在最后一个元素(密码)上。因此,您应该在阅读中添加rstrip(),例如:

x = file.readline().rstrip()

这应该有帮助,编码愉快!

相关问题