2014-04-15 3 views
0

here에서 찾을 수있는 ystockquote를 사용하고 있습니다. 기본적으로 나는 모든 주식 기호가있는 파일을 가지고 있으며 파이썬을 사용하여 펜을 사용하고 각 주식의 가격을 표시합니다. 여기 내 코드는 지금까지 있습니다 :파일을 읽고 주가를 알려주는 파이썬

다음과 같은 오류를 제공
import ystockquote 

def intro(): 
    # Here you enter the name of your file 
    watchlist = raw_input(">") 
    open_watchlist = open(watchlist) 

    print "What next" 
    next = raw_input(">") 

    if next == "view": 
     for line in open_watchlist: 
      quote = ystockquote.get_price(line) 
      print "%s: %s" % (line, quote) 

intro() 

:

File "hi.py", line 16, in <module> 
    intro() 
    File "hi.py", line 13, in intro 
    quote = ystockquote.get_price(line) 
    File "/Users/Nawaz/plancials_beta/env/lib/python2.7/site-packages/ystockquote.py", line 67, in get_price 
    return _request(symbol, 'l1') 
    File "/Users/Nawaz/plancials_beta/env/lib/python2.7/site-packages/ystockquote.py", line 31, in _request 
    resp = urlopen(req) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 402, in open 
    req = meth(req) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1113, in do_request_ 
    raise URLError('no host given') 
urllib2.URLError: <urlopen error no host given> 

나는 그것이 상징과 가격을 표시하는 얻을 수있는 방법에 어떤 아이디어? 감사.

+0

% s : % s "% (줄, quuote)'당신은 '인용문'을 잘못 입력했습니다 – Andy

+0

고마워요. 고칠 수는 있지만 여전히 작동하지 않습니다. 나는 [이 오류] (http://pastebin.com/6YbPrn4x)를 얻을 – ng150716

+0

ystockquote의 버그처럼 보입니다. 당신이 그것을 가져오고 인터프리터에서 get_price를 할 경우 작동합니까? – geoffspear

답변

1

둘째 줄부터 마지막 ​​줄까지 quote의 철자가 틀린 것 같습니다. :)

하지만 가치있는 것은 : 파일과 같은 리소스를 열면 언제든지 완료 한 후에 파일을 닫아야합니다. 가장 좋은 방법은이이처럼 with open 구문을 사용하여 수행되었는지 확인합니다 : 더 들여

def intro(): 
    watchlist = raw_input(">") 
    with open(watchlist) as wl: 
     print "What next" 
     next = raw_input(">") 

     if next == "view": 
      for line in wl: 
       quote = ystockquote.get_price(line) 
       print "%s: %s" % (line, quote) 

intro() 

아무것도를 with open ... 라인은 현재 열려있는 파일을 수행보다. 코드의 해당 섹션을 벗어나면 파일이 자동으로 닫힙니다.

+0

감사합니다. 잘못 입력해야합니다. 그러나, 내가 그것을 고칠 때 나는 [이 오류] (http://pastebin.com/6YbPrn4x) – ng150716

관련 문제