2016-11-02 4 views
-1

Also unten habe ich meinen Code, der aus einer Datei lesen muss, um den Inhalt der Datei zu drucken. Meine Frage ist, wie würde ich die Zeilen in der Datei separat drucken, damit sie nicht alle auf einmal drucken, sondern nur, wenn sie benötigt werden?Lesen und Drucken aus einer Textdatei in separaten Zeilen?

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() 

Vielen Dank im Voraus für Ihre Hilfe :)

+0

Ihre aktuelle Antwort auf alle Ihre 'if/elif' Fällen ist' print (text_file.read (39)) '. Sie sind alle identisch. Wie ist die Struktur der Datei, die Sie lesen? – roganjosh

+0

Ok. Aber um vernünftige Hilfe zu bekommen, sollten Sie ein Schnipsel der Textdatei zeigen, damit die Leute wissen, was Sie gerade lesen. – roganjosh

+4

Aus welchem ​​Grund löschen Sie Ihre Frage? Es ist eine schlechte Form, deine Frage zu beantworten, nachdem sie beantwortet wurde. Es riecht nach "Ich will nicht erwischt werden, wenn ich im Internet nach Hausaufgaben frage." –

Antwort

0

Sie können ein Wörterbuch wie im folgenden Beispiel verwenden. Der Vorteil ist, dass Sie eine Reihe von Zeilennummern verwenden können, und es wird auch den Code vereinfachen:

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

Vielen Dank dafür! Es funktioniert genau so, wie ich es mir vorgestellt habe. – Lopin

0

Wenn Sie die Zeilennummer der benötigten Antwort und Textdatei ist nicht so groß weiß, Sie Zeilen der Datei in eine Liste lesen konnte.

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

Dann könnten Sie die entsprechende Antwort zugreifen, indem die bekannte Zeilennummer Indizierung in der Liste:

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

Ich denke, man könnte zunächst alle Zeilen in dieser Datei lesen und dann regulären Ausdruck trennen diese Zeilen nach Schlüsselwörtern im Wörterbuch. Danach können Sie Wörterbuch verwenden, um zu bekommen, was Sie brauchen.

Verwandte Themen