我看了其他问题,找到了如何在文本文件中找到单词所在的行,但在我的代码中使用它时,它并没有达到我想要的效果。你知道吗
while x == "i" :
print ("Please Enter Your Usename And Pasword!")
luser = input("USERNAME - ")
Lpass = input("PASSWORD - ")
with open("USERNAME.txt") as ucc:
for num, line in enumerate(ucc, 1):
if luser in line:
print (int(num))
uc = open( "USERNAME.txt", "r")
pc = open( "PASSWORD.txt", "r")
u = uc.readline(int(num))
pw = pc.readline(int(num))
print (u)
print (pw)
所以我运行这个并输入我在注册程序中使用的用户名,它的意思是检查它在哪一行,这样它就知道哪个密码与它配对。但由于某些原因,readline位不知道要读取哪一行来设置变量。你知道吗
正如评论者指出的
readline()
不接受行号作为参数。读取特定行的一种方法是遍历文件,直到到达所需的行。你知道吗逐行解释:
以读取模式打开
USERNAME.txt
文件(由r
表示),并将其file object分配给名为fp
的变量。你知道吗通常,如果我们想简单地一行一行地遍历一个文件,我们可以这样做
但是,我们需要知道与每一行相关联的行号,这样才能找到一条特定的行。enumerate()让我们将每一行与分配给变量
i
的行号相关联。enumerate()
中的start=1
参数指定i
将从1
开始,而不是默认值0
。你知道吗简言之,这个语句表示我们将循环遍历
fp
中的行,并在运行时对它们进行计数。你知道吗for循环将遍历文件中的每一行,但我们只关心带有用户名/密码的那一行。这里我们检查当前行号
i
是否是我们要查找的行号。你知道吗如果它是我们要查找的行号,我们将
u
变量设置为行的内容。你知道吗关键字退出循环。找到要查找的行之后,我们不需要遍历文件的其余部分,因此我们
break
以节省时间。你知道吗您可以使用linecache标准库模块直接转到特定行PS无需打开文件
为了你的案子
相关问题 更多 >
编程相关推荐