我只想用以下代码读取一个JSON文件:
import json
with open("file.json") as File:
print(json.load(File.read()))
当我尝试使用VSCode调试器运行它时,出现错误:
[Errno 2] No such file or directory: 'file.json'
但是当我使用python file.py
从终端运行它时,它就工作了。
问题是,VSCode以某种方式使用了另一个“工作目录”,因为当我在VSCode中运行os.getcwd()
时,我得到了python脚本所在文件夹的父文件夹的路径。
当我从终端运行它时,我得到了正确的路径。
为什么?你知道吗
需要指出的是:问题不在于print语句/json。当我只尝试打开文件而不做任何其他操作,然后通过时,同样的错误也会出现。你知道吗
正如在评论中所讨论的,你的问题是你工作的环境。当程序从终端执行时,它工作并找到了文件。这很可能是因为虚拟环境在VS代码中的设置方式。虚拟环境或
venv
是一个独立于全局Python安装的Python解释器环境。当您在两个需要不同版本库的不同项目上工作时,它非常有用。例如,一个使用django1.10的项目和一个使用1.9的项目,这样您就不必在安装和卸载它们之间来回切换。你知道吗As explained here,您的.json文件很可能在您的项目虚拟环境之外,这就是它找不到它的原因。我希望这能帮助你理解它。你知道吗
您可以使用os软件包验证文件是否存在:
如果文件存在,则应打印True。你知道吗
您还可以尝试使用绝对路径来确保。你知道吗
使用此项获取当前目录。您将能够识别Python从何处运行。您还可以使用JSON文件的完整文件路径。你知道吗
相关问题 更多 >
编程相关推荐