繁体   English   中英

Python 3:如何修复FileNotFoundError:[Errno 2]没有这样的文件或目录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM