【发布时间】:2015-01-27 00:57:41
【问题描述】:
首先,在这个论坛上有一个关于相同错误号的问题。我正在寻求帮助;但是,在尝试了那里提到的解决方案后,我觉得我的问题有所不同。
我在 Mac OS X Yosemite 上通过 IDLE 使用 Python 2.7。
我正在尝试将下载的数据写入已创建的特定文件夹中的 .csv 文件。产生错误的代码行是
fc = open('%s/try.csv' % (dl_dir), 'w')
在哪里
dl_dir = 'quandl/futures/ES'
我得到的错误是
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
fc = open('%s/try.csv' % (dl_dir), 'w')
IOError: [Errno 2] No such file or directory: 'quandl/futures/ES/try.csv'
起初我执行了这个命令,但文件try.csv 没有出现在所述目录中,因为open 上的文档说如果该文件不存在,该命令将创建该文件。收到此错误后,我在上述目录中创建了try.csv,并授予了'read','write' 和'execute' 文件的权限
Parikshits-MacBook-Pro:ES parikshitbhinde$ chmod a+wrx try.csv
Parikshits-MacBook-Pro:ES parikshitbhinde$ ls -l
total 8
-rwxrwxrwx 1 parikshitbhinde staff 4 Jan 26 19:18 try.csv
即使在此之后,我仍然会遇到同样的错误。有什么帮助吗?
注意:即使没有在 Ubuntu 14.01 上的 Python 2.7 上创建文件,代码也可以工作
谢谢
【问题讨论】:
-
我看到您使用的是相对路径。是否有可能您在 Mac 上以不同的路径运行脚本?尝试使用相同的相对位置启动它或将 dl_dir 更正为绝对路径。
-
你的意思是
dl_dir = '~/quandl/futures/ES'吗?我也尝试过同样的错误。如果没有,那么您能否更具体一点。另外,我刚刚打开IDLE并运行代码,有没有办法改变IDLE的工作目录? -
os.path.dirname(__file__)将为您提供当前 python 文件的路径。将其用于相对文件路径。或者使用绝对路径。我不会依赖~,因为这可能取决于平台,并根据运行脚本的用户进行更改。 -
它在 Ubuntu 中工作的原因可能是因为找到了该文件夹,即使该文件尚未创建。
-
我在解释器上运行命令,而不是脚本。我将尝试将命令放在与 csv 相同的目录中的脚本中,然后尝试运行该脚本。
标签: python python-2.7 osx-yosemite ioerror