2012-02-23 3 views
-1

имейте проблемы с получением моего кода на Python для чтения текстового файла и суммирования всех денежных значений. код, казалось, работал нормально на моем компьютере, но как только я передал файл на мой 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 материалов компании. Вы получили 50 фунтов песка по цене стоимостью 40 долларов. Кирпич, который мы поставили, составляет 70,5 за 75 кг. Кроме того, мы поставили 30yards из дерна за 200,00 $. Стоимость доставки составляет 35 долларов США.

поэтому мне нужно добавить 40 + 70,5 + 200 +35 Я продолжаю получать индекс за пределами допустимой погрешности. Кто-нибудь думает, что они могут мне помочь?

+0

Поддерживает ли ваш компьютер и Mac ту же версию? Кроме того, можно ли увидеть трассировку? Кроме того, вы читали документацию для sys.argv? –

+0

Какая у вас ошибка, это дает вам строку, в которой она не работает. –

+0

Traceback (самый последний вызов последнего): Файл "matt.py", строка 33, в основной() Файл "matt.py", строка 28, в основной суммы + = findnum (х) Файл " matt.py ", строка 13, в findnum if ((w.strip ('. n,')). isalpha()! = True и w [0] .isalpha()! = True и w [-2] .isdigit() == True): IndexError: индекс строки за пределами диапазона – matture

ответ

Смежные вопросы