Функция регистрации цены акций - PullRequest
0 голосов
/ 28 марта 2020

У меня есть эта функция, при которой цена акции регистрируется в режиме реального времени каждые 2 секунды и сохраняется в файле CSV, однако я не вижу ничего в CSV, когда открываю ее. Чего мне не хватает в сценарии?

import pandas as pd
import time
import urllib
import sys
import fix_yahoo_finance as yf

def stocks():

    # Enter stock symbol
    stock = input("Enter stock: ")

    # Name CSV file
    csvy= str(stock) + time.strftime('.%A.%d.%b.%Y').replace(' ', '') + ".csv" 
    csvy = csvy.replace(':' , '') 

    with open(csvy, 'w') as f: 
         sys.stdout = f 

         while 1 > 0: 

             print(yf.get_live_price(stock)) 

             time.sleep(2)

stocks()

1 Ответ

1 голос
/ 28 марта 2020

Вы писали:

        print(yf.get_live_price(stock)) 

Вы хотите дополнительно буферизовать sh буфер, чтобы ваш новый текст сразу был виден:

          print(yf.get_live_price(stock), flush=True) 

В качестве альтернативы, рассмотрите возможность присвоения текущей цены переменной temp, а затем выведите ее дважды, используя print() и f.write(), вместо назначения нового значения для stdout. Тогда вы сможете независимо от них сделать sh в соответствии с вашими потребностями, f.flush() или sys.stdout.flush().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...