2013-06-19 11 views
8

Co jest przyczyną błęduTypeError: obiekt typu „bool” ma len() długości sys.argv czeku

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

Czy mogę importować coś w moim programie Pythona? Używam len (sys.argv) w warunku, aby sprawdzić liczbę argumentów wiersza poleceń, które są wartościami zmiennoprzecinkowymi (jak 1,2 i 2,4 itd.). jakieś pomysły? To jest w python2.6. W ten sposób używam programu

python BeaconsAnalysis.py 2.0 3.0 

a niektóre części mojego kodu, gdzie jestem sprawdzanie to,

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

Czy możesz udostępnić odpowiednią część swojego kodu i co przekazujesz w linii poleceń? –

+0

@BenLerner Zmieniłem kod tak, jak prosiłeś –

+0

Mam błąd. Przepraszam i dziękuję. –

Odpowiedz

14

Masz nawiasy w niewłaściwym miejscu i muszą odpowiadać za scenariusz nazwa w argv [0]. if(len(sys.argv == 2)): powinien być if(len(sys.argv) == 3):

+0

Głupia literówka, której nigdy nie robię, tylko że dzięki tej odpowiedzi sprawdziłem i znalazłem ten błąd, którego nie mogłem znaleźć, chociaż mój testowy kod testowy mówił mi o tym. Dzięki! –

Powiązane problemy