【问题标题】:TypeError: object of type 'bool' has no len() in sys.argv length check [closed]TypeError:“bool”类型的对象在 sys.argv 长度检查中没有 len() [关闭]
【发布时间】:2013-06-19 00:36:12
【问题描述】:

报错的原因是什么

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

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

python BeaconsAnalysis.py 2.0 3.0  

我正在检查的代码的某些部分是,

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)

【问题讨论】:

  • 您能否分享您的代码的相关部分,以及您在命令行中传递的内容?
  • @BenLerner 我按照你的要求更改了代码
  • 搞错了。对不起,谢谢。
  • 我犯了同样的错误,所以感谢你成为第一个谷歌结果!
  • Mods,你说“这个问题的解决方式不太可能帮助未来的读者”,但我认为你低估了我们中的一些人有时会变得多么愚蠢!

标签: python python-2.7 python-3.x


【解决方案1】:

您将括号放在错误的位置,需要考虑 argv[0] 中的脚本名称。 if(len(sys.argv == 2)): 应该是 if(len(sys.argv) == 3):

【讨论】:

  • 一个我从未犯过的愚蠢错字,除了这个答案,我检查并确实发现了这个我无法找到的错误,尽管我的单元测试代码告诉了我.谢谢!
  • 刚刚犯了同样的错误……看来我们都在犯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 2019-05-23
  • 2013-04-18
  • 2015-01-21
  • 2021-12-19
  • 2018-08-26
相关资源
最近更新 更多