无法在 python 中追加文件
Unable to append file in python
我有这个脚本,它可以从雅虎财经拉出过去这么多年的股价。
代码为 运行 后,我无法再次写入文件,即使支持ose 检查存在的内容并追加。
我收到以下错误:
FileExistsError:[Errno 17] 文件存在:'stocks_dfs'
请指教!
'''python
将 bs4 导入为 bs
进口泡菜
导入请求
将日期时间导入为 dt
将 pandas 导入为 pd
进口 os
将 pandas_datareader.data 导入为网络
从时间导入睡眠</p>
<pre><code>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')[1].text
tickers.append(ticker)
with open("sp500ticker.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("sp500ticker.pickle","rb") as f:
tickers=pickle.load(f)
if not os.path.exists('stock_dfs'):
os.makedirs('stocks_dfs')
start = dt.datetime(2016,1,1)
end = dt.datetime.now()
for ticker in tickers:
print(ticker)
if not os.path.exists('stocks_dfs/{}.csv'.format(ticker)):
df = web.DataReader(ticker,'yahoo', start, end)
df.to_csv('stocks_dfs/{}.csv'.format(ticker))
else:
print('Already have {}'.format(ticker))
get_data_from_yahoo()
'''
FileExistsError: [Errno 17] File exists: 'stocks_dfs'
您抱怨此行失败:
os.makedirs('stocks_dfs')
要支持重复调用,您需要指定 exist_ok=True
标志。
我有这个脚本,它可以从雅虎财经拉出过去这么多年的股价。
代码为 运行 后,我无法再次写入文件,即使支持ose 检查存在的内容并追加。
我收到以下错误: FileExistsError:[Errno 17] 文件存在:'stocks_dfs'
请指教!
'''python
将 bs4 导入为 bs
进口泡菜
导入请求
将日期时间导入为 dt
将 pandas 导入为 pd
进口 os
将 pandas_datareader.data 导入为网络
从时间导入睡眠</p>
<pre><code>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')[1].text
tickers.append(ticker)
with open("sp500ticker.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("sp500ticker.pickle","rb") as f:
tickers=pickle.load(f)
if not os.path.exists('stock_dfs'):
os.makedirs('stocks_dfs')
start = dt.datetime(2016,1,1)
end = dt.datetime.now()
for ticker in tickers:
print(ticker)
if not os.path.exists('stocks_dfs/{}.csv'.format(ticker)):
df = web.DataReader(ticker,'yahoo', start, end)
df.to_csv('stocks_dfs/{}.csv'.format(ticker))
else:
print('Already have {}'.format(ticker))
get_data_from_yahoo()
'''
FileExistsError: [Errno 17] File exists: 'stocks_dfs'
您抱怨此行失败:
os.makedirs('stocks_dfs')
要支持重复调用,您需要指定 exist_ok=True
标志。