当我在终端中运行时,出现[Errno 2]没有此类文件或目录错误,但是当我使用调试模式时,它会起作用。
这里发生错误
list = open(filename, "r")
该代码也适用于IDLE
答案 0 :(得分:3)
您的调试器很可能在与终端不同的位置运行。将您的终端安装到文件所在的位置,或者尝试使用绝对路径而不是相对路径。
答案 1 :(得分:0)
如果在代码中添加以下几行并使用IDE或Terminal运行它,您会注意到其中的区别:
import os
curdir = os.getcwd()
print('My current directory is {}'.format(curdir))
fullpath_to_filename = os.path.join(curdir, filename)
print('When I run `open(filename)`, python sees: {}'.format(fullpath_to_filename))
print('This filepath is {}valid'.format('' if os.path.exists(fullpath_to_filename) else 'not '))
您可能会遇到类似以下的情况:
# on IDE:
My current directory is c:\Users\me\Projects\
When I run `open(filename)`, python sees: c:\Users\me\Projects\test.txt
This filepath is valid
# on Terminal:
My current directory is c:\Programs\Python38\
When I run `open(filename)`, python sees: c:\Programs\Python38\test.txt
This filepath is not valid
解决方案:为您的filename
使用绝对路径,或者为os.chdir(...)
使用正确的父路径之前的filename
。我建议前者避免管理目录。