当我使用调试但在终端python中运行时,代码在Visuall Studio Coe中起作用,但不适用于

时间:2019-12-10 19:48:00

标签: python visual-studio

当我在终端中运行时,出现[Errno 2]没有此类文件或目录错误,但是当我使用调试模式时,它会起作用。

这里发生错误

list = open(filename, "r")

该代码也适用于IDLE

2 个答案:

答案 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。我建议前者避免管理目录。