2013-06-19 18 views
8

lý do cho các lỗiLỗi Loại: đối tượng của loại 'bool' không có người len() trong tầm kiểm soát chiều dài sys.argv

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

tôi nên nhập cái gì đó trong chương trình python của tôi là gì? Tôi đang sử dụng len (sys.argv) trong nếu điều kiện để kiểm tra số lượng đối số dòng lệnh, đó là các giá trị float (như 1.2 và 2.4, vv). Có suy nghĩ gì không? Điều này là trong python2.6. Đây là cách tôi đang chạy chương trình

python BeaconsAnalysis.py 2.0 3.0 

Và một số phần của mã của tôi, nơi tôi đang kiểm tra này là,

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

Bạn có thể chia sẻ phần có liên quan của mã và những gì bạn đang chuyển tại dòng lệnh không? –

+0

@BenLerner Tôi đã thay đổi mã như bạn đã hỏi –

+0

Có lỗi của tôi. Xin lỗi và cảm ơn bạn. –

Trả lời

14

Bạn đã dấu ngoặc đang ở vị trí sai và cần phải giải thích cho kịch bản tên trong argv [0]. if(len(sys.argv == 2)): phải là if(len(sys.argv) == 3):

+0

Một lỗi đánh máy ngu ngốc mà tôi không bao giờ thực hiện, ngoại trừ điều đó, nhờ câu trả lời này, tôi đã kiểm tra và tìm thấy sai lầm này mà tôi không thể tìm thấy mặc dù mã kiểm tra đơn vị của tôi đã cho tôi biết về nó. Cảm ơn! –

Các vấn đề liên quan