从文本文件中获取所有货币值

时间:2012-02-23 00:46:40

标签: python

我无法让我的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 我一直在索引超出范围错误.. 有人认为他们可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

import re
print re.findall('(\$\d+(?:\.\d{2})?)', x)