2017-01-06 5 views
0

У меня есть файл, содержащий тикеры, разделенные новой строкой. Поэтому, когда файл напечатан он выглядит следующим образом:Получение строк строк, называемых переменными

SPY 

QQQ 

Я пытаюсь использовать финансовый модуль Yahoo, чтобы получить цену для каждого тикер. Однако я не могу правильно построить цикл 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 («») на каждом строка в файле? Я не вижу никаких запятых в файле примера, который вы выложили, поэтому это было бы необязательно. Можете ли вы разместить точный пример position.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_ Обратите внимание: вы не закрыли файл после его чтения. –

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