python - 逐行读取 .txt 文件
python - read .txt file line by line
我正在尝试读取我的文件中包含用户名列表的每一行,而不是用它创建一个登录系统。我正在尝试实现一个基本登录系统,该系统将用户名存储在 .txt 文件中,但我的代码不起作用,我也不知道为什么。我认为问题出在我检查用户名的循环中。
这是我的代码,但它不起作用,只是一直打印失败:
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()
有什么想法吗?
for line in lines:
if not lines:
pass
if line == b:
print('pass')
如果文件有任何内容,if not lines
永远不会成立。由于 if line == b
在其下方缩进,因此它永远不会被执行。
此外,当您像这样遍历文件中的行时,line
末尾将有一个换行符,因此 if line == b
无论如何都不是真的。您必须去掉换行符。
试试这个:
for line in lines:
if line.strip() == b:
print('pass')
我正在尝试读取我的文件中包含用户名列表的每一行,而不是用它创建一个登录系统。我正在尝试实现一个基本登录系统,该系统将用户名存储在 .txt 文件中,但我的代码不起作用,我也不知道为什么。我认为问题出在我检查用户名的循环中。
这是我的代码,但它不起作用,只是一直打印失败:
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()
有什么想法吗?
for line in lines:
if not lines:
pass
if line == b:
print('pass')
如果文件有任何内容,if not lines
永远不会成立。由于 if line == b
在其下方缩进,因此它永远不会被执行。
此外,当您像这样遍历文件中的行时,line
末尾将有一个换行符,因此 if line == b
无论如何都不是真的。您必须去掉换行符。
试试这个:
for line in lines:
if line.strip() == b:
print('pass')