没有这样的文件或目录错误

时间:2010-10-23 13:54:01

标签: python

这是我得到的错误:

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资源管理器中导航并打开它,为什么我不能打开它?

编辑:

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

我正在运行cmd中的python脚本,如下所示:

python E:\stuff\module.py

6 个答案:

答案 0 :(得分:9)

首先,从上面看,Windows支持/就好了。

其次: 好吧,如果你查看你的文件,你会注意到它不是log.txt,它是log.txt.txt ...你可以在图形文件夹查看器中看到它为“log.txt”(而不是CLI“ dir“命令”只是因为它隐藏了已知的文件扩展名。

我建议您禁用此功能 - 请参阅文件夹选项,应该有一个选项“隐藏已知文件类型的扩展名”(或类似)。

答案 1 :(得分:3)

在“dir”输出中查看此行:

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

您要查找的文件名为“log.txt.txt”,而不是“log.txt”。我发现当人们将Windows文件管理器设置为不显示已知文件扩展名然后他们尝试添加或修改扩展名时,就会发生这种情况。我向其他人推荐他们拒绝这种行为。您可以在View-&gt;我相信的文件夹选项下执行此操作。

答案 2 :(得分:1)

阅读权限怎么样?也许没有被授权阅读(默认的开放模式)

答案 3 :(得分:1)

由于它是windows,并且反斜杠是转义字符,因此必须将反斜杠加倍以使其转义。尝试

e:\\stuff\\log.txt

答案 4 :(得分:1)

很长一段时间我没有使用Windows,但是如果我记得很好的Windows在系统路径中使用反斜杠,那么你应该这样做:

import os

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

f = open(file_name)

而不是:

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

窗口中没有/在路径中。

答案 5 :(得分: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()