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