I am trying to read every line of my file which contains a list of usernames and than make a login system with it. I am trying to implement a basic login system which has usernames stored in a .txt file but my code doesn’t work and I don’t know why. I think that the problem is in my loop which checks for username.
Here is my code but it doesn’t work it just prints fail all the time:
a = input('do you have an account y/n:')
if a == 'y':
b = input('insert username:')
file1 = open('file.txt', 'r')
lines = file1.readlines()
for line in lines:
if not lines:
pass
if line == b:
print('pass')
else:
print('fail')
else:
d = input('new username:')
f = open("file.txt", "a")
print(d, file=f)
f.close()
Any ideas?
Advertisement
Answer
for line in lines:
if not lines:
pass
if line == b:
print('pass')
If the file has any contents, if not lines will never be true. And since if line == b is indented underneath that, it never gets executed.
Also, when you iterate over the lines in a file like that, line will have a newline character at the end, so if line == b would not be true anyway. You’ll have to strip off the newline character.
Try this instead:
for line in lines:
if line.strip() == b:
print('pass')