我有以下代码:
from datetime import datetime, timedelta
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd
from os import path
import csv
from pandas_datareader import data as web
from pathlib import Path
import time as t
html = urlopen('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
soup = BeautifulSoup(html,'lxml')
sp500_raw = soup.find('table', {'class': 'wikitable sortable'})
spsymbol =[]
for row in sp500_raw.findAll('tr')[1:]:
spsymbols = row.findAll('td')[0].text.strip()
spsymbol.append(spsymbols)
df = pd.DataFrame(spsymbol, columns=['Stock_name'])
# df = df.set_index('Stock name')
df.Stock_name.str.replace('^\d+ +','').to_csv('SP Scrapped data.csv', index=False, header=False)
stock_data = []
with open('SP Scrapped data.csv') as csvfile:
stockticker_data = csv.reader(csvfile, delimiter=' ')
row_count = row_count = sum(1 for row in stockticker_data)
counter = 0
while counter < =row_count: #Question regarding the while loop
for i in range(20):
print(row_count)
for row in stockticker_data: #No data is being passed to the variable row
all_data = []
for ticker in row:
stock_data.append(web.get_data_yahoo(ticker, '1/1/2008', '1/1/2019'))
for df in stock_data:
df.to_csv(ticker, header=None, index=None,columns=['Date', 'High', 'Low', 'Open', 'Close', 'Volume', 'Adj Close'], sep=' ')
counter = counter +1
print('sleep')
t.sleep(10)
我的问题是关于while循环。我要完成的是while循环运行20次迭代,然后进入睡眠状态10秒钟。但是出于某种原因,输出只是行数,然后进入休眠状态,并且似乎在print语句之后不执行for循环。