python - 从文本文件中逐行读取

标签 python

我有这个文本文件,其中包含:

Ryan#Male#Ryan123#Ryan321#
Lina#Female#Lina123#Lina321#

顺序是姓名#性别#用户名#密码

user = username.get() //from tkinter entry
pass = password.get()
counter = IntVar()
counter = 0

file = open("user.txt", "r")
for login in file:
     login = login .split('#')
     if user == login [2]:
         counter += 1
     if pass== login [3]:
         counter += 1

file.close()

if counter == 2:
     //go to next page
else:
     print "wrong username or password!"

这行得通,但是,当我尝试打印 login[2] 时,它返回了;

Ryan123
Lina123

当我使用 Ryan 作为用户名时,我仍然可以使用 Lina 的密码登录。如何让它逐行检查 .txt 文件中的内容?

我的意思是,首先检查这一行:

Ryan#Male#Ryan123#Ryan321#

当找不到登录信息时,它将继续到下一行。

最佳答案

密码问题是因为你从来没有在行之间重置计数器。但它可以在不计算条件的情况下更简单地完成:

file = open("user.txt", "r")
for login in file:
    login = login.split('#')
    if user == login[2] and password == login[3]:
        print 'Correct username/password'
        break
else:
    print 'Invalid username/password'
顺便说一句,

pass 是 Python 中的一个关键字,因此最好为变量名使用其他名称。

关于python - 从文本文件中逐行读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211643/

相关文章:

python - 如何将列表作为值而不是引用传递?

python - 在 pytest 参数化中标记输入

python - 使用 dict.fromkeys( ) 禁用自动字典排序?

python - 列表索引如何工作?

python - Python 函数究竟是如何返回/产生对象的?

python - 如何使用leveldb以及我可以在pycaffe界面中使用什么样的dataLayer?

Python - 遍历列表中的选定索引

python - 如何使 numpy 数组的列表都具有相同的形状?

python - 使用 Tornado 和 pyodbc 进行异步调用

python - 应用函数和系列对象