无法在循环(python)中使用next()获取下一行

时间:2016-08-15 22:59:26

标签: python loops iteration next

我正在尝试编写一个迭代txt文件的代码,只获取我要打印出的行。

文本文件应如下所示:

mimi
passwordmimi
mimi johnson
somejob
joji
passwordjoji
jojo
somejob
john
passwordjohn
jonathan
somejob
....

等等。此文本文件基本上包含用户信息(用于登录)。我需要打印每个人的用户名和他们的真实姓名(例如:mimi和mimi johnson。),只有那些。我不希望打印出当前用户的信息(在此ex:joji中)

这是我的代码:

username="joji"

file=open("username.txt","r") 
x=file.readlines()

x=[item.rstrip('\n') for item in x]

x=iter(x)

for line in x:
      if line==username:
              next(x,None)
              next(x,None)
              next(x,None)
      else:
              print line + " username"    ****username should print out. ex:mimi or john
              next(x,None)
              print line +" real name   ****real name should print out. ex: mimi johnson or jonathan

无论出于何种原因,当我运行此程序并打印出我放入的第二个****时,它会打印出用户名的两次。 (例如:

mimi username
mimi real name
mimi johnson username
mimi johnson real name
john username
john real name
jonathan username
jonathan real name
....

为什么?它应该打印出来

mimi username
mimi johnson real name
john username
jonathan realname 
...

如果有人可以帮助我,我会非常感激我不会得到python。 我也对任何其他建议持开放态度。

编辑:::我尝试通过建议进行更改,这是结果:

新的代码块:

else: 
      print line + "username" 
      line =next(x,None)
      print line

这是新结果:

 mimi username
 passmimi real name
 mimi johnson username
 somejob real name
 john username
 passjohn real name
 jonathan username
 somejob real name(***im assuming this one is from john's job)

:/它没有按照预期的那样做

0 个答案:

没有答案