2013-06-19 12 views
8

Qual è la ragione per l'erroreTypeError: oggetto di tipo 'bool' non ha len() sotto controllo la lunghezza sys.argv

TypeError: object of type 'bool' has no len() 

Dovrei importare qualcosa nel mio programma Python? Sto usando len (sys.argv) in se condizione per verificare il numero di argomenti della riga di comando, che sono valori float (come 1.2 e 2.4, ecc.). qualche idea? Questo è in python2.6. Questo è il modo sto facendo funzionare il programma

python BeaconsAnalysis.py 2.0 3.0 

E una parte del mio codice dove sto controllando questo è,

with open("luawrite", "r") as f: 
    if(len(sys.argv == 2)): 
      for line in f: 
        t1 = sys.argv[1] 
        t2 = sys.argv[2] 
        hashes = line.split() 
        t = hashes[0] 
        ...........(goes on) 
+0

Puoi condividere la porzione pertinente del tuo codice e quello che stai passando alla riga di comando? –

+0

@BenLerner Ho cambiato il codice come richiesto –

+0

Ho sbagliato. Scusa e grazie. –

risposta

14

Hai la parentesi nel posto sbagliato e la necessità di tenere conto per lo script nome in argv [0]. if(len(sys.argv == 2)): dovrebbe essere if(len(sys.argv) == 3):

+0

Uno stupido errore di battitura che non faccio mai, tranne che, grazie a questa risposta, ho controllato e ho trovato questo errore che non ero stato in grado di trovare anche se il mio codice di test unitario me lo stava dicendo. Grazie! –

Problemi correlati