2017-06-17 2 views
-1

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 
+1

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). –

+0

@RoryDaulton J'ai ajouté le plus d'extrait de code –

+0

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. –

Répondre

0

Le problème est probablement avec cette ligne

elif: command == '..' 

Le côlon est au mauvais endroit, changer pour

elif command == '..': 
+0

c'est du pseudo-code, j'ai utilisé la bonne syntaxe quand je l'ai couru –