由于某种原因,我的代码无法打开一个简单的文件:
这是代码:
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.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') # absolute path
关于python - open() 给出 FileNotFoundError/IOError : Errno 2 No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201928/