读取文本文件每行后无法打印列表长度,遇int不可调用错误
解决'int is not callable'错误的问题
嘿,这个问题我太熟了!int is not callable这个错误的核心原因非常明确:你之前在Notebook里不小心把内置的len函数当成变量名赋值过——比如可能写过len = 5或者其他给len赋整数值的代码,这就把Python自带的求长度函数给覆盖了。当你再想调用len(s[1])的时候,本质上是在试图“调用”一个整数,自然就会抛出这个错误啦。
快速修复步骤
- 先在IPython Notebook的单元格里执行
del len,把这个被错误赋值的len变量删掉,这样Python就会重新使用内置的len()函数。 - 之后再运行
print(len(s[1])),就能正常输出s[1]这个列表的长度了。
顺便优化下你的代码
另外看了下你的代码,最后一行print(s[1]))多了一个多余的右括号,虽然这不是导致当前错误的原因,但修正后代码会更规范,同时还能把多次字符串替换操作合并,让代码更紧凑:
with open('xxx.txt','r') as f: for l in f.readlines(): s = l.split("\t") # 合并多次replace操作,简化代码 s[1] = s[1].replace('/', '').replace('\n', '').split(',') print(s[1]) # 去掉多余的右括号
这样处理字符串的逻辑更清晰,可读性也更好~
内容的提问来源于stack exchange,提问作者moiaussi06
相关产品推荐
相关产品推荐

