我无法让我的python代码读取文本文件并将所有货币值加在一起。代码似乎在我的电脑上正常工作,但是一旦我将文件传输到我的mac它就给了我一大堆错误。这是代码
#!usr/bin/python
import sys
def findnum(x):
list = x.split(' ')
index = 0
listindex = -1
numlist = []
sum = 0
for w in list:
if ((w.strip('. n,')).isalpha() != True and w[0].isalpha() != True and w[-2].isdigit() == True):
numlist.append(w)
listindex += 1
while listindex >= 0:
sum += float(numlist[listindex].strip('$ n.'))
listindex -= 1
return sum
def main():
text = open(sys.argv[1])
x = text.readline()
sum = 0
if len(x) > 0:
findnum(x)
while len(x) > 0:
sum += findnum(x)
x = text.readline()
print '{0:.2f}'.format(sum)
if __name__ == '__main__':
main()
这是文字 这是来自ACME材料的发票 公司。你收到了50磅的沙子 费用40美元。我们交付的砖是70.5 为75Kg。另外,我们交付了30码 200美元的草皮。运费为35美元。
所以我需要添加40 + 70.5 + 200 +35 我一直在索引超出范围错误.. 有人认为他们可以帮助我吗?
答案 0 :(得分:3)
import re
print re.findall('(\$\d+(?:\.\d{2})?)', x)