2014-02-08 1 views
-1

независимо от режима открытия я пытаюсь использовать, он выбрасывает эту ошибку:Python открытым (х, «ш») не создает новый текстовый файл

keylog = open(keydump, mode = 'w') 
FileNotFoundError: [Errno 2] No such file or directory: 'keylog 2014/02/08-08/54/18.txt' 

где

now = datetime.datetime.now().strftime('%Y/%m/%d-%H/%M/%S') 
keydump = ''.join(['keylog ', str(now), '.txt']) 
+5

'/' в именах файлов? – devnull

+1

Вы действительно хотите создать это дерево каталогов 'keylog 2014/02/08-08/54 /' – hivert

+1

его '/' в имени файла, иногда я могу быть очень глупым. благодаря! –

ответ

4

Вы помещая / в ваше имя файла, когда ваша система использует это как разделитель путей. Если / является разделителем путей, он попытается создать файл в пути, который, вероятно, не существует, следовательно, ваша ошибка.

Другими словами,

keylog 2014/02/08-08/54/18.txt 

является файл 18.txt в каталоге keylog 2014/02/08-08/54.

+1

Даже если ваша система использует обратную косую черту как разделители путей, Python все равно будет интерпретировать косые черты в качестве разделителей путей. Разрешения не допускаются в именах файлов в любой системе. –

0

Я предлагаю заменить '/' с '_' во временном представлении:

keydump = ''.join(['keylog_', str(now).replace('/', '_'), '.txt']) 
Смежные вопросы