2016-09-29 3 views
1

Я пробовал распечатать 2 строки под кодом, который пользователь вводит из текстового файла.Печать 2 строк под пользовательским вводом?

мой текстовый файл:

86947367 
banana 
5 

78364721 
apple 
3 

35619833 
orange 
2 

84716491 
sweets 
8 

46389121 
chicken 
10 

Таким образом, если пользователь вводит, например, 46389121 то он будет печатать

chicken 
    10 

Я пробовал:

file = 'read_it.txt' 
user = input('Enter code') 

with open(file, 'r') as f: 
    lines = f.readlines() 
    for i, line in enumerate(lines): # enumerate will count and keep track  of the lines 
     if line == user: 
      print("{}\n{}".format(lines[i+1], lines[i+2])) 

, но это дает мне выход пустых строк, любая помощь, пожалуйста?

+0

Для начала нужно отложить свой блок 'if' под вашим циклом' for'. – elethan

+0

yh sry (с отступом в главном коде) –

+1

Вы пробовали делать 'if line.strip() == user'? Потому что это, вероятно, не удовлетворяет 'if line == user', потому что' line' имеет новую строку в конце, а 'user', вероятно, не –

ответ

0

Попробуйте зачистки линии перед сравнением с использованием rstrip():

file = 'read_it.txt' 
user = input('Enter code') 

with open(file, 'r') as f: 
    lines = f.readlines() 
    for i, line in enumerate(lines): # enumerate will count and keep track  of the lines 
     if line.rstrip() == user: 
      print("{}\n{}".format(lines[i+1], lines[i+2])) 

Имейте в виду, что вместо загрузки всех файлов одновременно, вы можете просто перебирать над ним, как так:

file = 'read_it.txt' 
user = input('Enter code') 

with open(file, 'r') as f: 
    for line in f: 
     if line.rstrip() == user: 
      print(next(f).rstrip()) 
      print(next(f).rstrip()) 
      break 

Функция rstrip() удаляет пробелы в конце строки. Пробелы включают в себя , \n, \t, \r и т. Д.

+0

спасибо, вторая отлично работает, это в первый раз, когда я столкнулся с функцией rstrip(), вы можете объяснить, что он делает в этом контексте? И как я могу избавиться от пространства на выходе? Спасибо. –

+0

@asasas Обновлен как код, так и ответ. – Bharel

+0

Почему я не могу установить переменную в функцию печати? Когда я это делаю и пытаюсь распечатать, это дает мне Нет –

Смежные вопросы