我很难在Python中将字符串类型转换为整数。我想要做的是从CSV文件中读取特定列并将其作为整数传递。这是我的代码:
import sys
for line in sys.stdin:
line = line.strip()
line = line.split(",")
tMax = line [9]
tMax2 = int(tMax)
if len(tMax) <=4:
print (tMax2)
当我运行它时,我收到以下错误,
invalid literal for int() with base 10
我检查了列的类型,它被接受为字符串。
答案 0 :(得分:2)
在我看来,由于它抱怨int()
转换,因此在尝试转换之前tMax
中的任何内容都存在问题。
通过添加以下行可以轻松发现:
print('[' + tMax + ']')
在尝试转换之前。
这实际上应该合理地清楚地显示问题,此时您可以继续找出为什么字符串值不是您所期望的。
答案 1 :(得分:0)
我跳过了错误中最重要的部分 - 实际描述。错误invalid literal for int() with base 10
有:TMAX
,这意味着它正在抱怨标题。我删除了标题,它运行得很漂亮。我知道有一种更好的方法可以在不删除标题的情况下读取文件;我很快就会知道。