一尘不染

Python open()提供IOError:Errno 2没有这样的文件或目录

python

由于某些原因,我的代码无法打开简单文件:

这是代码:

file1 = open('recentlyUpdated.yaml')

错误是:

IOError: [Errno 2] No such file or directory: 'recentlyUpdated.yaml'
  • 自然地,我检查了这是文件的正确名称。
  • 我尝试在文件中四处移动,提供文件open()的完整路径,但似乎都不起作用。

阅读 563

收藏
2020-02-19

共1个答案

一尘不染

  • 确保文件存在:用于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
2020-02-19