[英]Mac OS; Python3; FileNotFoundError: [Errno 2] No such file or directory: ''. How to fix it?
[英]Python 3: How to fix FileNotFoundError: [Errno 2] No such file or directory
免责声明:我对python很新,所以提前抱歉因为缺乏编码知识。 我正在从雅虎财经中提取历史数据,并希望通过它来运行交易策略。 我在大多数情况下都进行了回测试,但为了提高效率和可读性,我决定尝试使用更明确定义的变量创建一个类。 当我获取数据时,我想将其下载为csv文件,因此每次运行时都不需要重新获取数据。 话虽这么说,当我尝试在创建csv的文件名时使用我的变量时,我得到了FileNotFoundError。 但是,如果我只是硬编码名称,它的工作原理创建csv没问题。 我已经尝试了多种不同的方法来使用我的变量作为文件名,但除了硬编码之外没有任何工作。 有人可以帮我理解发生了什么吗?
##Working Code:
class backtest:
def __init__(self, ticker):
start = '1/3/2000'
end = '1/3/2019'
sdate = pd.to_datetime(start)
edate = pd.to_datetime(end)
if os.path.islink('{}_{}_to_{}.csv'.format(ticker, start, end)) == True:
self.df = pd.read_csv('{}_{}_to_{}.csv'.format(ticker, start, end), parse_dates=True)
else:
##Failed attempt 1
##self.filename = '{}_{}_to_{}.csv'.format(ticker, start, end)
##self.df.to_csv(self.filename)
##Failed attempt 2
##self.filename = str(ticker) + '_' + start + '_to_' + end + '.csv'
##self.df.to_csv(self.filename)
self.df = web.DataReader(ticker, 'yahoo', sdate, edate)
self.df.to_csv('amzn_1/3/2000_to_1/3/19.csv')
amzn = backtest('amzn')
print(amzn.df.head(1))
为了使文件名尝试:
self.filename = str(ticker) + '_' + str(sdate) + '_to_' + str(edate) + '.csv'
这里,sdate和edate是class 'pandas._libs.tslibs.timestamps.Timestamp'
。 因此,他们必须在追加时转换为字符串。
控制台中的结果将是:
High ... Adj Close Date ... 2000-01-03 89.5625 ... 89.375
文件名为amzn_2000-01-03 00:00:00_to_2019-01-0300:00:00.csv
。 如上面的评论所述,文件名不应包含特殊字符'/'。 所以使用sdate而不是strat。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.