2016-11-02 4 views
-1

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

input = input('Type:') 

if input == ('input'): 
     text_file = open("read.txt", "r") 
     print (text_file.read(39)) 

     text_file.close() 

elif input == ('input'): 
     text_file = open("read.txt", "r") 
     print (text_file.read(39)) 

     text_file.close() 

elif input == ('input'): 
     text_file = open("read.txt", "r") 
     print (text_file.read(39)) 

     text_file.close() 

elif input == ('input'): 
     text_file = open("read.txt", "r") 
     print (text_file.read(39)) 

     text_file.close() 

elif input == ('input'): 
     text_file = open("read.txt", "r") 
     print (text_file.read(39)) 

     text_file.close() 

elif input == ('input'): 
     text_file = open("read.txt", "r") 
     print (text_file.read(39)) 

     text_file.close() 

Заранее спасибо за помощь :)

+0

Ваш текущий ответ на все ваши 'если/elif' случаев является' печать (text_file.read (39)) '. Они все одинаковые. Какова структура файла, который вы читаете? – roganjosh

+0

Хорошо. Но для того, чтобы получить разумную помощь, вы должны показать фрагмент текстового файла, чтобы люди знали, что вы на самом деле читаете. – roganjosh

+4

В чем причина стирания вашего вопроса? Это плохая форма, чтобы уничтожить ваш вопрос после ответа. Это воняет: «Я не хочу, чтобы меня заставляли спрашивать о домашнем задании в Интернете». –

ответ

0

Вы можете использовать словарь, как показано в примере ниже. Преимущество заключается в том, что вы можете использовать диапазон номеров строк, и это также упростит код:

import fileinput 

plines = {'wifi':1,'storage':4} 
user_input = input('Welcome to the troubleshooting system, please state which category you have having issues with:') 

for line in fileinput.input("task2_solutions.txt"): 
    if fileinput.lineno() == plines[user_input]: 
     print line 
+0

Спасибо за это! Он работает именно так, как я себе это представлял. – Lopin

0

Если вы знаете номер строки нужного ответа и текстовый файл, не так уж велик, вы можете прочитать строки файла в список.

text_file = open("task2_solutions.txt", "r") 
responses = text_file.read().split("\n") 
text_file.close() 

Тогда вы могли бы получить доступ к соответствующей реакции путем индексации известный номер строки в списке:

if user_input == ('wifi'): 
    print(response[0]) 
0

Я думаю, что вы могли бы сначала прочитать все строки в этом файле, а затем использовать регулярное выражение для того чтобы отделить эти строки в соответствии с ключевыми словами в словаре. После этого вы можете использовать словарь, чтобы получить то, что вам нужно.

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