2010-10-23 4 views
2

Это не ошибка я получаю:Нет такой ошибки файла или каталога

Traceback (most recent call last): 
    File "E:\stuff\module.py", line 91, in <module> 
    f = open('E:/stuff/log.txt') 
IOError: [Errno 2] No such file or directory: 'E:/stuff/log.txt' 

И это мой код:

f = open('E:/stuff/log.txt') 

Файл E:/stuff/log.txt существует. Я могу перемещаться в проводнике Windows и открывать его, так почему бы мне не открыть его?

EDIT:

Вывод команды DIR:

C:\Documents and Settings\Administrator>dir e:\stuff 
Volume in drive E has no label. 
Volume Serial Number is 5660-4957 

Directory of e:\stuff 

23. 10. 2010 09:26 <DIR>   . 
23. 10. 2010 09:26 <DIR>   .. 
19. 10. 2010 20:07    385 index.py 
23. 10. 2010 16:12    1 954 module.py 
22. 10. 2010 19:16    8 335 backprop.py 
19. 10. 2010 20:54    1 307 backprop-input.gif 
19. 10. 2010 01:48    310 HelloWorld.kpf 
23. 10. 2010 15:47     0 log.txt.txt 
       6 File(s)   12 291 bytes 
       2 Dir(s) 8 795 586 560 bytes free 



C:\Documents and Settings\Administrator>dir e:\ 
Volume in drive E has no label. 
Volume Serial Number is 5660-4957 

Directory of e:\ 

16. 10. 2010 13:32 <DIR>   development-tools 
23. 10. 2010 09:26 <DIR>   stuff 
       0 File(s)    0 bytes 
       2 Dir(s) 8 795 586 560 bytes free 

Я бегу сценарий питона из ЦМД, как это:

python E:\stuff\module.py 
+0

«Я могу перемещаться в проводнике Windows». Так? Выполните команду «DIR» из командной строки и скопируйте и вставьте ее тоже. –

+0

@S. Лот, я сделал это. См. Мой обновленный вопрос. –

+1

@Richard: это не командная строка, это был интерпретатор python. – SilentGhost

ответ

8

Во-первых, сверху, Windows поддерживает/просто отлично.

Во-вторых: Хорошо, если вы посмотрите на свой файл, вы заметите, что это не файл log.txt, это файл log.txt.txt ... Вы можете увидеть его как «log.txt» в своем графическом просмотрщике папок (в отличие от команды «dir» CLI) просто потому, что скрывает известные расширения файлов.

Я рекомендую отключить это - см. Параметры папки, должна быть опция «Скрыть расширения известных типов файлов» (или аналогичных).

1

как насчет чтения разрешения? возможно, не разрешено читать (режим по умолчанию открыт)

+0

Имеются разрешения на чтение и запись. –

1

Поскольку это окна, а обратная косая черта - это символ escape, вы должны удвоить обратную косую черту, чтобы избежать ее. Попробуйте

e:\\stuff\\log.txt 
+0

Почему бы не использовать r "e: \ stuff \ log.txt"? Почему бы не использовать 'os.path.join (" E: "," stuff "," log.txt ")'? –

+0

OP использует косые черты - экранирование - это не проблема. Как справедливо указывают Брэди и Тим, файл 'log.txt' не существует _not_, это' log.txt.txt'. – paxdiablo

1

это было долгое время, что я не использовал окно, но если я помню, а окна использовать обратную косую черту в системном пути, так что вы должны сделать:

import os 

file_name = os.path.join("e:\\stuff", "log.txt") 

f = open(file_name) 

и нет:

f = open('E:/stuff/log.txt') 

В окнах нет/в дорожках.

+0

Python действительно обрабатывает косые черты в порядке - возможно, нет, когда вы его использовали, я не знаю, как давно это было :-) – paxdiablo

+0

@paxdiablo: извините? я не понял, я сказал, что окна не используют обратную косую черту в пути, как unix. когда я сказал, что python не обрабатывает косую черту? – mouad

+0

Вы сказали, что не использовать 'f = open ('E: /stuff/log.txt')', когда на самом деле это будет работать нормально. Вам не нужна обратная косая черта. – paxdiablo

1

Определить вам имена путей с использованием os.path.join()

root="E:\\" 
mylog = os.path.join(root,"stuff","log.txt") # or log.txt.txt as seen in your dir output 
f = open(mylog) 
... 
f.close() 
3

Посмотрите на этой линии в «реж» выход:

23. 10. 2010 15:47     0 log.txt.txt 

Файл, который вы ищете называется «log.txt.txt» , а не «log.txt». Я вижу, что это происходит, когда люди настраивают диспетчер файлов Windows, чтобы не показывать известные расширения файлов, а затем они пытаются добавить или изменить расширение. Я рекомендую другим, чтобы они отключили это поведение. Вы можете сделать это в разделе «Вид»> «Параметры папки».

+1

Только одно примечание: люди не «настраивают» этот путь, это (к сожалению) поведение по умолчанию. Ужасная, ужасная идея, на мой взгляд, но, к сожалению, так оно и есть. –

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