Mike
Mike

Reputation: 21

How to check the username in text file or not and then ask for the password?

loginUsername = input("Enter Username: ")
loginPassword = input("Enter PASSWORD: ")

data=open('database.txt', 'r')
accounts = data.readlines()

for line in data:
    accounts = line.split(",")
    if (loginUsername == accounts[0] and loginPassword == accounts[1]):
        print("LOGGED IN")
    else:
        print("Login FAILED")

print(accounts)

I want to make a text login system, which will ask for the username first. After checking the text file which stored username and password, the system will ask for password. But I don't know how to read the first column (which is username, the structure of the text file is "username, password"). If i use readlines() and split(","). But there is "n" at the end of the password.

Upvotes: 2

Views: 2509

Answers (2)

Andreas Violaris
Andreas Violaris

Reputation: 4158

# You should always use CamelCase for class names and snake_case
# for everything else in Python as recommended in PEP8.
username = input("Enter Username: ")
password = input("Enter Password: ")

# You can use a list to store the database's credentials.
credentials = []

# You can use context manager that will automatically
# close the file for you, when you are done with it.
with open("database.txt") as data:
    for line in data:
        line = line.strip("\n")
        credentials.append(line.split(","))

authorized = False

for credential in credentials:
    db_username = credential[0]
    db_password = credential[1]
    if username == db_username and password == db_password:
        authorized = True

if authorized:
    print("Login Succeeded.")
else:
    print("Login Failed.")

Upvotes: 3

Marco Hannemann
Marco Hannemann

Reputation: 481

The "n" at the end of the password is probably the newline character \n. In order to remove it, you can use the rstrip() function:

mystring = "password\n"
print(mystring.rstrip())

>>> 'password'

Upvotes: 1

Related Questions