2017-01-06 8 views
0

私はテロップを含むファイルを新しい行で区切ります。だから、ファイルが印刷されたときには、次のようになります。私は、各ティッカーの料金を取得するためにヤフーファイナンスモジュールを使用しようとしています変数として名前が付けられたファイル行を取得する

SPY 

QQQ 

。しかし、私はforループを適切に構築することができないので、ティッカー(括弧も\nも含まれていません)だけが含まれています。私は宣言されるティッカーだけが必要です(var2 = Share('SPY') , var2 = Share('QQQ'))。どんな助けでも大歓迎です。私の現在のコードは

from yahoo_finance import Share 

file = open('positions.txt', 'r') 
result = [line.split(',') for line in file.readlines()] 

for ticker in result: 
    var = ticker 
    var1 = str(ticker) 
    #the yahoo finance functions are below 
    var2 = Share(var1) 
    print(var2.get_price()) 
+1

あなたがそれぞれに(「」)line.splitを使用しているのはなぜファイルの行?投稿したサンプルファイルにカンマが表示されないので、これは必要ではありません。 positions.txtの正確な例を投稿できますか? –

答えて

0

です。positions.txtファイルを解析する方法から問題が発生している可能性があります。それが本当に新しい行で区切られたテロップのテキストファイルであれば、readlines()は直下のリストのようになり、(コードクリーンアップの後に)私のために働きます。ここで

>>> result = ['SPY', 'QQQ'] 
>>> for ticker in result: 
...  var2 = Share(ticker) 
...  print(var2.get_price()) 
... 
226.58 
120.87 

は、私がお勧めします何ですが、私は確かに知っているあなたのファイルの例を参照してくださいする必要があります:

from yahoo_finance import Share 

with open('positions.txt', 'r') as fp: 
    result = fp.readlines() 

for ticker in result: 
    #the yahoo finance functions are below 
    var2 = Share(ticker) 
    print(var2.get_price()) 
+0

完璧に感謝! – user7328255

+0

よろしくお願いします!あなたが満足している答えを受け取ったら、この質問が答えられたことを示すために、受け入れボタン(答えの左上隅の近く)をクリックする必要があります。 –

+0

@calico_ファイルを読み込んだら、ファイルを閉じていないことに注意してください。 –

関連する問題