Ich habe Probleme, den Benutzer zur Eingabe aufzufordern, nachdem ich bereits eine Datei von der Befehlszeile gelesen habe. Mein Code sieht ungefähr so aus, aber ich bekomme jedes Mal einen EOFError. Fehle ich etwas? Mein Code:So kombinieren Sie die Dateieingabe über die Befehlszeile und die Benutzereingabe
import sys
file = sys.stdin.read().splitlines()
print (file)
name = input("Input your name: ")
print (name)
Hier ist, was ich in die Befehlszeile für diese Zeilen setzen:
python3 tester.py < example_file.txt
['my file']
Input your name: Traceback (most recent call last):
File "tester.py", line 4, in <module>
name = input("Input your name: ")
EOFError: EOF when reading a line
In diesem Fall glaube ich raus aus dem sys.stdin.read() Teilungslinien.() Zeile vorausgesetzt, dass es die Informationen in der Datei korrekt ausgibt. Sobald die Zeile, die input() enthält, ausgeführt wird, werde ich nicht zur Eingabe aufgefordert, und es wird ein Fehler angezeigt, ohne dass die Eingabe wie üblich unterbrochen wird.
Bitte zeigen repräsentativen Code und Eingang. – dawg
Ich habe es ein wenig aktualisiert. Gibt dir das eine bessere Vorstellung davon, was vor sich geht? – SQ101
Mögliches Duplikat von [Wie wird sys.stdin.readlines() eingegeben?] (Http://stackoverflow.com/questions/5549141/how-to-finish-sys-stdin-readlines-input) –