Я пытаюсь написать код, который перебирает текстовый файл и получает только те строки, которые я хочу распечатать.
текстовый файл должен выглядеть так:
mimi
passwordmimi
mimi johnson
somejob
joji
passwordjoji
jojo
somejob
john
passwordjohn
jonathan
somejob
....
и так далее. этот текстовый файл содержит в основном информацию о пользователе (для входа в систему). Мне нужно распечатать имя пользователя каждого и его настоящее имя (например: Мими и Мими Джонсон.) И только те. Я не хочу, чтобы информация о текущем пользователе распечатывалась (в этом примере: 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)
:/ он не делает то, что должен
next()
не изменяет значениеline
. - person Code-Apprentice   schedule 16.08.2016next
в этом случае. напримерline = next(x)
- person Paul Rooney   schedule 16.08.2016next()
в соответствующее время, чтобы сделать это. - person Code-Apprentice   schedule 16.08.2016x=iter(x)
, вероятно, не очень хорошая идея, потому что вы используете одну и ту же переменную для двух разных целей. Вы должны создать новую переменную здесьi = iter(x)
. Кроме того,x
иi
— ужасные имена переменных. Вы должны использовать более описательные имена. - person Code-Apprentice   schedule 16.08.2016