2014-02-21 1 views
4

Я вижу странное поведение с открытым Python (.., 'w') в Linux. Я создаю кучу файлов (file1 ... file100) в новой директории, каждый из которых:Python open (путь, 'w') не удается создать файл

with open(nextfile, 'w') as f: 

Если реж пуст, он всегда терпит неудачу с:

IOError: [Errno 2] No such file or directory: '../mydir/file1' 

Существует нет выдавать с разрешениями вообще.

Если я вручную создаю «touch mydir/file1», затем снова запустите скрипт Python, остальные файлы создаются без проблем.

Я использую Python 2.7.

Кто-нибудь видел это?

+1

Вы можете показать точный код, который вы используете? –

+0

Вы, кажется, используете относительные пути; вы уверены в своем текущем рабочем каталоге? Почему пытается создать файл в '../ mydir', а не' mydir'? –

ответ

3

Я воспроизводя ошибку:

In [482]: nextfile='../mydir/file1' 

In [483]: with open(nextfile, 'w') as f: 
    ...:  pass 
--------------------------------------------------------------------------- 
IOError         Traceback (most recent call last) 
<ipython-input-483-fa56c00ac002> in <module>() 
----> 1 with open(nextfile, 'w') as f: 
     2  pass 

IOError: [Errno 2] No such file or directory: '../mydir/file1' 

name в open(name, ...) должно быть имя файла или абсолютный путь, не относительный путь не допускается. Если путь ../mydir существует, попробуйте следующее:

In [484]: import os 
    ...: os.chdir('../mydir') 
    ...: nextfile='file1' 
    ...: with open(nextfile, 'w') as f: 
    ...:  #do your stuff 
    ...:  pass 

или использовать абсолютный путь к файлу, чтобы открыть:

nextfile=os.path.join(os.getcwd(), '../mydir/file1') 
+1

Вопрос в том, почему он терпит неудачу только для первого файла ... – excalibur

Смежные вопросы