TypeError:类型为'bool'的对象在sys.argv长度检查中没有len()

Jus*_*rey 9 python python-2.7 python-3.x

错误的原因是什么?

TypeError: object of type 'bool' has no len()  
Run Code Online (Sandbox Code Playgroud)

我应该在我的python程序中导入一些东西吗?我在if条件中使用len(sys.argv)来检查命令行参数的数量,这些参数是浮点值(如1.2和2.4等).有什么想法吗?这是在python2.6中.这就是我运行程序的方式

python BeaconsAnalysis.py 2.0 3.0  
Run Code Online (Sandbox Code Playgroud)

我检查这个代码的部分代码是,

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)
Run Code Online (Sandbox Code Playgroud)

tde*_*ney 16

你在错误的地方得到了parens并且需要在argv [0]中考虑脚本名称.if(len(sys.argv == 2)):应该if(len(sys.argv) == 3):

  • 我从来没有犯过一个愚蠢的错字,除此之外,多亏了这个答案,我检查并确实发现了这个错误,尽管我的单元测试代码告诉了我它,但我无法找到它。谢谢! (2认同)