当前位置: 代码迷 >> python >> isdigit 为整数返回 false
  详细解决方案

isdigit 为整数返回 false

热度:35   发布时间:2023-06-13 16:44:36.0

我正在打开一个文件 'testFile' 并以逗号分隔它。 到目前为止,一切都很好。 一行中的第二个值是“30”,该行是“This is a, 30, test”我可以验证它是否正确拆分,因为我可以打印parts[1]并打印“30”,但为什么会重复。当此值为 30 时 isd??igit() 返回 false?

with open('testFile') as fp:
    for line in fp:
        parts = line.split( ',' )

        repeats = parts[1]
        print repeats.isdigit()
        print parts[1]

应用于“30”的isdigit()将始终返回 false,因为“30”之前有空格。 要解决此问题, .strip()isdigit()之前使用.strip()方法

You could use re.split. it can split on mult tokens.
import re
with open('data') as f:
    for line in f:
        # split on white space and commas
        line = re.split(r'[ ,]',line)
        # re.split leaves some empty strings, so remove them
        line = [el for el in line if el]
        print(line)
        print(line[3].isdigit())

['This', 'is', 'a', '30', 'test']

True
  相关解决方案