2012-02-23 5 views
-1

私のpythonコードをテキストファイルを読み込み、すべての金銭的価値を加算することに問題があります。コードは私のPC上で正常に動作していたようだが、私は私のMacにファイルを転送するとすぐに私にエラーの完全なスルーを与えた。ここでは、ここでコードすべてのcurrecny値をテキストファイルから取り出す

#!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材料 会社からの請求書です。あなたは $ 40のコストで50ポンドの砂を受け取りました。私たちが配達したレンガは、75Kgに対して70.5 です。さらに、我々は$ 200.00のために30ydardsの を送った。配送料は35ドルです。

私は40 + 70.5 + 200 +35を追加する必要があります インデックスから範囲外のエラーが出てきています。 誰かが私を助けてくれると思いますか?

+0

あなたのPCとMacは同じバージョンを実行していますか?また、トレースバックが見えますか?また、sys.argvのドキュメントも読んでいますか? –

+0

あなたのエラーは何ですか?失敗している行が表示されますか? –

+0

トレースバック(最新の呼び出しの最後): メイン() ファイル "matt.py" で ファイル "matt.py"、33行、28行、メイン 合計で+ = findnum(x)の ファイル」 (true)、w [0] .isalpha()!= true、w [-2]のように、findnum内のmatt.pyの行13を .isdigit()== True): IndexError:文字列インデックスが範囲外にある – matture

答えて

3
import re 
print re.findall('(\$\d+(?:\.\d{2})?)', x) 
関連する問題