python - open() 给出 FileNotFoundError/IOError : Errno 2 No such file or directory

标签 python file file-io path file-not-found

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

这是代码:

file1 = open('recentlyUpdated.yaml')

错误是:

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

最佳答案

  • 确保文件存在:使用os.listdir()查看当前工作目录下的文件列表
  • 确保您使用 os.getcwd() 位于您认为所在的目录中(如果您从 IDE 启动代码,您很可能位于不同的目录中)
  • 然后您可以:
    • 调用os.chdir(dir)dir为文件所在的文件夹 找到,然后像以前一样使用文件名打开文件。
    • open 调用中指定文件的绝对路径。
  • 如果您的路径使用反斜杠,请记住使用原始字符串,例如 所以:dir = r'C:\Python32'
    • 如果不使用原始字符串,则必须转义每个反斜杠:'C:\\User\\Bob\\...'
    • 正斜杠也适用于 Windows 'C:/Python32',不需要转义。

让我澄清一下 Python 是如何查找文件的:

  • 绝对路径是从您计算机的根目录开始的路径,例如,如果您使用的是 Windows,则为 C:\Python\scripts
  • 相对路径是不以计算机根目录开头的路径,而是相对于称为工作目录的路径。你可以通过调用os.getcwd()查看Python的当前工作目录。

如果您尝试执行 open('sortedLists.yaml'),Python 将看到您正在向其传递相对路径,因此它将在当前工作目录中搜索文件。

调用os.chdir()会改变当前工作目录。

示例:假设 file.txtC:\Folder 中找到。

要打开它,你可以这样做:

os.chdir(r'C:\Folder')
open('file.txt') # relative path, looks inside the current working directory

open(r'C:\Folder\file.txt') # absolute path

关于python - open() 给出 FileNotFoundError/IOError : Errno 2 No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201928/

相关文章:

c# - 如何从解决方案项目中添加的 .txt 文件中读取

Java:关于写入的空白文件

python - 如何将nltk中的特征写入txt文件?

file - 如何在 C#.NET 应用程序中卸载时删除文件夹?

python - 使用 python 抓取谷歌精选片段

python - 如何模拟 python (flask) webapp 中的服务层进行单元测试?

c# - WinRT : Open previously opened files again after close

file-io - 如何在 Emacs 中输入 "Save As..."而不访问新文件?

python - 如何在不使用文件或目录的情况下在 python 中播放任何类型的声音

python - 如何使用 Python 将二维数组中的列分配给某个重复范围?