通过reg表达式查找txt中的数字,小问题

时间:2019-06-19 20:26:44

标签: python

我编写了代码,但是,它只找到该行中的第一个数字,这让我有些困惑。因此,如果只有2个或多个数字等于1,那我在做什么错呢?我是初学者。

import re
fhand = open('text2.txt','r')
numlist = list()
total = 0
for line in fhand:


      line = line.rstrip()
      numbers = re.findall(r'[0-9]+', line)
      if len(numbers) < 1: continue
      for element in numbers :
        num = float(numbers[0])
      if num not in numlist:
          numlist.append(num)
      else : continue
      sumlist = sum(numlist)
print(numlist)
print(sumlist)

http://py4e-data.dr-chuck.net/regex_sum_228867.txt是我正在使用的文本文件,总和为191882,结果应该更大,因为我的文本正在读取一行中唯一的第一个数字。干杯们,我将不胜感激

2 个答案:

答案 0 :(得分:0)

在已经回答了melpomene的评论中,但是如果您需要查看,请将代码更改为

for element in numbers :
        num = float(element)

答案 1 :(得分:0)

如何(使用re.M)传递多行标志。

with open('text2.txt') as f:
  s = sum(map(float,re.findall(r'[0-9]+', f.read(), re.M)))
  print(s)

返回:

425922.0