问题描述
我正在打开一个文件 '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]
1楼
应用于“30”的isdigit()
将始终返回 false,因为“30”之前有空格。
要解决此问题, .strip()
在isdigit()
之前使用.strip()
方法
2楼
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