Je dois lire plusieurs lignes à partir de l'entrée de l'utilisateur, les analyser comme des commandes et appeler des fonctions. Je continue d'obtenir EOFError même après avoir jeté une exception. La même chose arrive si je mets les instructions if..else à l'intérieur de 'try'. Le programme s'arrête au principal et n'appelle pas les fonctions.Comment réparer une erreur EOF lors de la lecture de l'entrée de l'utilisateur dans python 3?
ÉDITÉ
infile = open('file.csv')
weather = list()
for line in infile:
parse_one_line() #parse each row into tuples
#and add them into a list
while True:
try:
input_stream = input()
command = input_stream.split()
except ValueError:
pass
if command == []:
pass
elif command[:4] == ['filter', 'TEMP', 'at', 'least']:
filterRecord() #user input "filter TEMP at least <integer>"
elif ...
def filterRecord(): #filter rows that meet
#the criteria into a new list
global filtered
filtered = list()
try:
for x in range(len(weather)):
if int(weather[x][2]) >= int(command[-1]):
print(weather[x])
filtered.append(tuple(weather[x]))
except ValueError:
pass
S'il vous plaît nous donner une complète extrait de code qui (le plus souvent) s'exécute et nous dit l'entrée qui donne l'erreur, le désir d sortie, la sortie réelle et la trace complète pour l'erreur. Voir [Comment créer un exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve). –
@RoryDaulton J'ai ajouté le plus d'extrait de code –
Votre code n'est pas complet puisque vous avez une ligne 'elif ...', n'affichez pas la définition de 'parse_one_line()', et ainsi de suite. Vous n'avez pas encore montré l'entrée, la sortie désirée et réelle, et le retraçage. –