查看: 2169|回复: 2

Python open () gives IOError: Errno 2 has no such file or directory

[复制链接]

11

主题

63

帖子

159

积分

注册会员

Rank: 2

积分
159
发表于 2018-9-18 18:04:09 | 显示全部楼层 |阅读模式
出于某种原因,我的代码无法打开一个简单的文件:
这是代码:
file1 = open('recentlyUpdated.yaml')
错误是:
IOError: [Errno 2] No such file or directory: 'recentlyUpdated.yaml'
•        当然,我检查了这是文件的正确名称。
•        我试过移动文件,给出文件open()的完整路径,似乎没有任何用处。
回复

使用道具 举报

11

主题

80

帖子

199

积分

注册会员

Rank: 2

积分
199
发表于 2018-9-18 18:04:55 | 显示全部楼层
•        确保该文件存在:用于os.listdir()查看当前工作目录中的文件列表
•        确保您位于您认为自己所在的目录中os.getcwd()(如果从IDE启动代码,则可能位于不同的目录中)
•        然后你可以:
•        调用os.chdir(dir),dir作为文件所在的文件夹,然后打开文件,其名称就像您正在做的那样。
•        指定open呼叫中文件的绝对路径。
•        如果您的路径使用反斜杠,请记住使用原始字符串,如下所示: dir = r'C:\Python32'
•        如果你不使用原始字符串,你必须逃避每个反斜杠: 'C:\\User\\Bob\\...'
•        正斜杠也适用于Windows 'C:/Python32',不需要转义。
让我说明Python如何找到文件:
•        一个绝对路径是与您的计算机的根目录开始,例如路径“C:\ Python的\脚本..”,如果你使用的是Windows。
•        一个相对路径是不与您的计算机的根目录开始的路径,而是相对于一些所谓的是working directory。您可以通过调用查看Python的当前工作目录os.getcwd()。
如果你尝试这样做open('sortedLists.yaml'),Python会看到你传递一个相对路径,所以它将搜索当前工作目录中的文件。调用os.chdir将更改当前工作目录。
示例:假设file.txt找到了C:\Folder。
要打开它,您可以:
os.chdir(r'C:\Folder')
open('file.txt') #relative path, looks inside the current working directory
要么
open(r'C:\Folder\file.txt') #full path
回复

使用道具 举报

10

主题

82

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
发表于 2018-9-18 18:05:41 | 显示全部楼层
该文件可能存在但可能具有不同的路径。尝试编写文件的绝对路径。
尝试os.listdir()函数来检查至少python看到的文件。
试试这样:
file1 = open(r'Drive:\Dir\recentlyUpdated.yaml')
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表