python - 文件在同一个文件夹中,但仍然得到 FileNotFoud

标签 python file visual-studio-code pickle

我正在尝试通过 Pickle 打开 .dat 文件。尽管该文件与我的 .py 文件位于同一文件夹中,但当我运行时,我收到了 FileNotFoundError。
(仅供引用:我使用 VScode 来运行文件,但是,当我使用终端时它运行得非常好)
这是我的代码

import pickle

websites_list = pickle.load(open("websites.dat","rb"))
print(websites_list)
这是 .py 路径:
/Users/lequangdang/Documents/WSC/WSC_2.0/changewebsiteGUI.py
这是 .dat 路径:/Users/lequangdang/Documents/WSC/WSC_2.0/websites.dat这是错误:
FileNotFoundError: [Errno 2] No such file or directory: 'websites.dat'

最佳答案

相对路径在使用 vscode 时基于工作目录,但在使用终端时基于 py 文件本身。
例如目录结构看起来像:WSC---WSC2.0---changewebsiteGUI.py当你在 vscode 中打开 WSC 时,pickle.load(open("websites.dat","rb"))将调用路径 WSC/websites.dat这就是为什么你有 FileNotFoundError解决此问题的一种方法是设置 vscode launch.json ,添加这一行:

"cwd": "${workspaceRoot}/WSC2.0"
另一种方法是使用一些函数来获取pyfile本身的abs路径:
os.path.dirname(os.path.abspath(__file__))

关于python - 文件在同一个文件夹中,但仍然得到 FileNotFoud,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66378837/

相关文章:

javascript - 使 django html 表单在提交时执行 2 个操作

python - 基于类的 View 中的可选 url 参数

javascript - python (bottle) - 异步响应 - 处理客户端 (javascript)

javascript - 用于跨浏览器文件上传的 jquery 插件

laravel - 如何使用 VS Code 在浏览器中运行 Laravel 项目

python - 有向线段之间的符号角

java - 如何在Java中将bigDecimal数据保存到文件中

linux - 如何在 Linux 中查找目录创建的详细信息

git - VS Code - git 存储库有太多事件更改,只会启用 Git 功能的一个子集

regex - VS 代码 : How to convert snippet placeholder from camelCase to SCREAMING_SNAKE_CASE?