2015-01-26 2 views
-1

Прежде всего, на этом форуме был задан вопрос о том же ошибке нет. что я прошу помощи; однако, после решения упомянутых там решений, я чувствую, что моя проблема другая.python - IOError: [Errno 2] Нет такого файла или каталога на OSX Yosemite

Я использую Python 2.7 через IDLE на Mac OS X Yosemite.

Я пытаюсь записать данные, загруженные в 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 

Даже после этого я по-прежнему получаю ту же ошибку. Любая помощь?

Примечание: код работает даже без создания файла на Python 2.7 на Ubuntu 14,01

Благодарности

+0

Я вижу, вы используете относительный путь. Возможно ли, что вы используете сценарий для другого пути на Mac? Попробуйте запустить его с тем же относительным местоположением или исправить dl_dir до абсолютного пути. –

+0

Вы имеете в виду 'dl_dir = '~/quandl/futures/ES''? Я тоже пробовал это с той же результирующей ошибкой. Если нет, то можете ли вы быть более конкретным. Кроме того, я только что открыл IDLE и запустил код, есть ли способ изменить рабочий каталог для IDLE? –

+0

'os.path.dirname (__ file __)' даст вам путь к текущему файлу python. Используйте это для относительных путей к файлам. Или используйте абсолютный путь. Я бы не стал полагаться на '~', так как это зависит от платформы и изменится в зависимости от того, какой пользователь запускает скрипт. –

ответ

1

Вы не можете создать файл, так как родительский каталог не существует, по отношению к рабочий каталог.

Попробуйте os.getcwd() из оболочки python, чтобы получить текущий рабочий каталог. os.chdir() можно использовать для изменения рабочего каталога.