-2

I am run this code and it works fine but the files it converts are supposed to be .csv but all my files in the folder are excel. I am not sure if this mistake is code related. but would appreciate any help.

import bs4 as bs
import datetime as dt
import os
import pandas as pd
from pandas_datareader import data as pdr
import pickle
import requests
import yfinance as yf

yf.pdr_override()

def save_sp500_tickers():
    resp = requests.get('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
    soup = bs.BeautifulSoup(resp.text, "lxml")
    table = soup.find('table', {'class':'wikitable sortable'})
    tickers = []
    for row in table.findAll('tr')[1:]:
        ticker = row.findAll('td')[0].text.replace('.', '-')
        ticker = ticker[:-1]
        tickers.append(ticker)
    with open("sp500tickers.pickle","wb") as f:
        pickle.dump(tickers, f)
    print(tickers)
    return tickers

#save_sp500_tickers()

def get_data_from_yahoo(reload_sp500=False):
    if reload_sp500:
        tickers = save_sp500_tickers()
    else:
        with open("sp500tickers.pickle", "rb") as f:
            tickers = pickle.load(f)
    if not os.path.exists('stock_dfs'):
        os.makedirs('stock_dfs')
    start = dt.datetime(2019,6,8)
    end = dt.datetime.now()
    for ticker in tickers[:20]:
        print(ticker)
        if not os.path.exists('stock_dfs/{}.csv'.format(ticker)):
            df = pdr.get_data_yahoo(ticker, start, end)
            df.reset_index(inplace=True)
            df.to_csv('stock_dfs/{}.csv'.format(ticker))
        else:
            print('Already have {}'.format(ticker))

save_sp500_tickers()
get_data_from_yahoo()

  • 1
    Are you sure that it isn't your OS that relates `.csv` files with Excel? Excel can open those files for you, and it will with the default settings once you install it, however `.csv` is basically just a text-file with a specific format. Can you open the files created with a text-editor? – Hampus Larsson Aug 16 '20 at 08:44

1 Answers1

0

Code runs fine. All the files are .csv only . Check the below snapshot.

enter image description here

vrana95
  • 511
  • 2
  • 10