在输入文件中查找数字的总和

时间:2016-02-24 15:15:42

标签: python regex

我试图找到输入文件中所有数字的总和,但它不起作用。到目前为止,这是我的代码:

import re

fname = raw_input("Enter name of the file: ")

fh = open(fname)
for i in fh:
     y = re.findall('[0-9]+', i)

print y

n=0
for p in y:
      n = n + int(p)

print n

2 个答案:

答案 0 :(得分:1)

这应该做:

import re
fname=raw_input("Enter name of the file: ")
with open(fname, 'r') as f: lines = f.readlines()
print map(lambda line: sum([int(i) for i in re.findall('[0-9]+', line)]), lines)

答案 1 :(得分:1)

除了错过两件事之外,您的代码才有效。 1)打开文件时,必须指定要以读取模式打开文件。 2)您必须阅读该文件。这是正确的代码:

import re

fname=raw_input("Enter name of the file: ")
fh=open(fname, "r")
data = fh.read()

y = re.findall('[0-9]+',data)
n=0

for p in y:
      n = n + int(p)    

print n