1
我试图解析一个文本文件并从中提取某些整数。在我的文本文件中的每一行都是这样的格式:在Python中使用re.findall()的问题
a和b
其中a是一个整数,B可以是浮动或整数
如。 '4和10.2356'或'400和25'
我需要提取a和b。我试图用re.findall()来做到这一点:
print re.findall("\d+", txt)[0] #extract a
#Extract b
try:
print float(re.findall("\d+.\d+", txt)[1])
except IndexError:
print float(re.findall("\d+.\d+", txt)[0])
这里txt是从文件中的单行。尝试和除了块的原因如下:
如果a是单个数字整数,例如。 4,代码的try部分只返回b。但是,如果a不是一个整数,例如。 400,代码的尝试部分返回a和b。我发现这很奇怪。
但是,我不知道如何修改上面的代码来提取b时,它是一个整数。我尝试了另一个尝试,除了bock在现有的except块之外,但它给了我奇怪的结果(在某些情况下a和b被连接)。请帮助我。
另外,任何人都可以请告诉我\ d +和\ d +。\ d +与为什么\ d +。\ d +返回400而不是4即使两者都是整数之间的区别。
非常感谢! – foobar 2015-02-12 23:55:34