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

Python 没有这样的文件或目录错误,python,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' E:/stuff/log.txt文件存在。我可以在Windows资源管理器中导航并打开它,为什么我

这就是我得到的错误:

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'

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

阅读权限如何?可能未授权阅读(默认打开模式)

阅读权限如何?可能未授权读取(默认打开模式)

因为它是windows,并且反斜杠是转义字符,所以必须将反斜杠加倍才能转义。试一试

e:\\stuff\\log.txt

由于它是windows,并且反斜杠是转义字符,因此必须将反斜杠加倍才能转义。试一试

e:\\stuff\\log.txt

我很久没有使用windows了,但如果我记得很清楚windows在系统路径中使用反斜杠,那么您应该:

import os

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

f = open(file_name)
而不是:

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

windows中没有路径。

我很久没有使用windows了,但如果我记得很清楚windows在系统路径中使用反斜杠,那么您应该执行以下操作:

import os

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

f = open(file_name)
而不是:

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

windows中没有/路径。

首先,从上面看,windows支持/很好

第二: 嗯,如果你看一下你的文件,你会发现它不是log.txt,而是log.txt.txt。。。您可能会在图形文件夹查看器中将其视为“log.txt”(与CLI“dir”命令相反),因为它隐藏了已知的文件扩展名


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

首先,从上面看,Windows支持/很好

第二: 嗯,如果你看一下你的文件,你会发现它不是log.txt,而是log.txt.txt。。。您可能会在图形文件夹查看器中将其视为“log.txt”(与CLI“dir”命令相反),因为它隐藏了已知的文件扩展名


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

使用
os.path.join()定义路径名。


使用
os.path.join()

请看“dir”输出中的这一行:

您正在查找的文件名为“log.txt.txt”,而不是“log.txt”。当人们将Windows文件管理器设置为不显示已知的文件扩展名,然后尝试添加或修改扩展名时,我会看到这种情况。我建议其他人关闭此行为。您可以在查看->文件夹选项下执行此操作。

查看“dir”输出中的这一行:



您正在查找的文件名为“log.txt.txt”,而不是“log.txt”。当人们将Windows文件管理器设置为不显示已知的文件扩展名,然后尝试添加或修改扩展名时,我会看到这种情况。我建议其他人关闭此行为。您可以在“视图->文件夹选项”下执行此操作。

“我可以在Windows资源管理器中导航”。所以在命令提示符下执行一个“DIR”命令,并复制粘贴该命令。@S.Lott我这样做了。请看我更新的问题。@Richard:那不是命令提示符,那是python解释器。
log.txt.txt
log.txt
不一样,或者是吗?@Richard:真的不值得。接受蒂姆的答案,或者干脆删除这个问题。它对社区没有什么用处。“我可以在Windows资源管理器中导航”。所以在命令提示符下执行一个“DIR”命令,并复制粘贴该命令。@S.Lott我这样做了。请看我更新的问题。@Richard:那不是命令提示符,那是python解释器。
log.txt.txt
log.txt
不一样,或者是吗?@Richard:真的不值得。接受蒂姆的答案,或者干脆删除这个问题。它对社区没有什么用处。为什么不使用r“e:\stuff\log.txt”?为什么不使用
os.path.join(“E:,“stuff”,“log.txt”)
?OP使用正向斜杠-这里不存在转义问题。正如布雷迪和蒂姆正确地指出的那样,
log.txt
文件不存在,它是
log.txt
。为什么不使用r“e:\stuff\log.txt”?为什么不使用
os.path.join(“E:,“stuff”,“log.txt”)
?OP使用正向斜杠-这里不存在转义问题。正如布雷迪和蒂姆正确地指出的那样,
log.txt
文件不存在,它是
log.txt.txt
。Python实际上可以处理正向斜杠,好的-当你使用它时,它可能没有,我不知道那是多久以前的:-@paxdiablo:对不起?我不明白,我说windows不像unix那样在路径中使用反斜杠。我什么时候说过python不处理正斜杠的?你说不要使用
f=open('E:/stuff/log.txt')
,而事实上这样做很好。你不需要反斜杠。@paxdiablo:如果我错了,请纠正我,但我认为windows没有这样的路径E:/stuff/log.txt没有正斜杠,他们使用反斜杠如下:E:\stuff\log.txt,你看到了区别:)是的,我看到了区别,但windows本身按照“注意windows API转换中的文件i/O函数”来处理/将名称转换为NT样式名称的过程中,将“\”转换为“\”,但使用“\ \?\”前缀的情况除外,详见以下章节。“你可以在问题中看到这一点。代码使用的是正斜杠,但错误消息使用的是反斜杠。Python实际上可以处理正斜杠。好的-当您使用它时,它可能没有,我不知道这是多久以前的事了:-@paxdiablo:对不起?我不明白,我说windows不像unix那样在路径中使用反斜杠。我什么时候说过python不处理正斜杠的?你说不要使用
f=open('E:/stuff/log.txt')
,而事实上这样做很好。你不需要反斜杠。@paxdiablo:如果我错了,请纠正我,但我认为windows没有这样的路径E:/stuff/log.txt没有正斜杠,他们使用反斜杠如下:E:\stuff\log.txt,你看到了区别:)是的,我看到了区别,但windows本身按照“注意windows API转换中的文件i/O函数”来处理/将名称转换为NT样式名称时,除使用“\\?\”前缀作为详细信息时外,将“”转换为“\”
23. 10. 2010  15:47                 0 log.txt.txt