2015-04-16 4 views
0

Я читаю данные о запасах от Yahoo, связанные с «котировками» (фондами), предоставленными мне в CSV-файле. Однако некоторые фондовые коды на самом деле недоступны на Yahoo, поэтому мне было интересно, есть ли способ учесть это в моем коде ниже с помощью Exception Handling.Попытка понять, как использовать обработку исключений с моим кодом

import pandas 
import pandas.io.data as web 
import datetime 
import csv 

f1=open('C:\Users\Username\Documents\Programming\Financialdata.csv') #Enter the location of the file 
c1= csv.reader(f1) 
tickers =[] 
for row in c1:   #reading tickers from the csv file 
    tickers.append(row) 
    start=datetime.datetime(2012,1,1) 
    end=datetime.datetime(2013,1,1) 
    l=[]; m=[]; tickernew=[] 
    i=0;j=0; k=0; z=[] 
    for tick in tickers[0]: 
     f=web.DataReader(tick,'yahoo', start,end) 
     if len(f)==250:   #checking if the stock was traded for 250 days 
      tickernew.append(tick)  #new ticker list to keep track of the new index number of tickers 
      k = k + 1    #k keeps track of the number of new tickers 
      for i in range(0,len(f)-1): 
       m.append(f['Adj Close'][i+1]/f['Adj Close'][i]) #calculating returns 
+0

Чтение https://docs.python.org/2/library/exceptions.html может быть полезным. – boardrider

ответ

0

Абсолютно. Ваш первый шаг должен состоять в том, чтобы посмотреть на трассировку, которую вы получите, когда ваша программа выйдет из строя из-за неверного ввода, который вы упомянули.

Затем просто оберните строку кода, с которым вы врезаетесь, с помощью try/except. Хороший стиль Python поощряет вас быть конкретным в отношении того, какой тип исключения вы обрабатываете. Так, например, если авария воспитывает «ValueException» вы хотите сделать это:

try: 
    bad_line_of_code 
except ValueException: 
    handle_the_issue 
Смежные вопросы