当前位置: 首页 > news >正文

解决VSCode无法识别相对路径的问题

前言:
近日在学习python文件操作时,发现使用VSCode作为编辑器时,文件的相对路径会出问题,报错“指定路径下找不到文件”,无法找到想要的文件。

知识点①:不同操作系统所使用的路径斜杠不同:Linux系统是/,Windows系统是\
知识点②:在使用相对路径表示【某源代码文件】所在的位置时,使用 ./ 表示当前所在目录,使用 ../ 表示当前所在目录的父目录。

问题:
这里先贴上笔者使用相对路径的 Python 代码段:

# 该代码片段位于 draw_chart.py 文件中
chart_title = '1836A'
file_path = f"../pending_files/{chart_title}.xlsx"   # 欲使用相对路径引用 1836A.xlsx 文件

再列出笔者的工程目录树
Python_project
└─ .vscode
│ ├─ launch.json
│ └─ settings.json
├─ app_sample
│ └─ draw_chart.py
├─ pending_files
│ └─ 1836A.xlsx

在这里插入图片描述
在基于以上的情况下,出现了相对路径报错的问题。报错提示如下图所示:
在这里插入图片描述
🌵 解决方案(一)
修改要点:将相对路径引用的代码段修改成当前目录引用,即../改成./,如下所示。

# 该代码片段位于 draw_chart.py 文件中
chart_title = '1836A'
file_path = f"./pending_files/{chart_title}.xlsx"   # 欲使用相对路径引用 1836A.xlsx 文件

修改后可正常运行,问题解决。
在这里插入图片描述

修改原理:因为此时相对路径的【参照位置】,是打开的“工程项目文件夹”,不是源代码文件目录所在位置。
以笔者的工程项目Python_project为示例,此时相对路径的【参照位置】是当前目录Python_project文件夹,不是app_sample!!!
则相对路径"./pending_files/{chart_title}.xlsx"等价于
绝对路径"E:/code/Python_project/pending_files/1836A.xlsx"。

🌵 解决方案(二)
修改要点1:首先我们不修改相对路径的引用,即代码段保持../不变。

# 该代码片段位于 draw_chart.py 文件中
chart_title = '1836A'
file_path = f"../pending_files/{chart_title}.xlsx"   # 欲使用相对路径引用 1836A.xlsx 文件

修改要点2:其次使用UI形式设置,依次打开 设置→搜索execute→勾选 Execute in file Dir 选项,如下图所示:
在这里插入图片描述
或者使用json文本形式设置,即在settings.json中添加"python.terminal.executeInFileDir": true,,如下图所示:
在这里插入图片描述
上述两者效果是一致的,VSCode有UI和json文本两种形式设置,任选一种即可,笔者推荐json文本形式设置。
最后运行Python代码,可以看到正常运行,问题解决。
在这里插入图片描述

修改原理:此时相对路径的【参照位置】,是“当前源代码的文件目录”。
以笔者的工程项目Python_project为示例,此时相对路径的【参照位置】是app_sample
则相对路径"…/pending_files/{chart_title}.xlsx"等价于
绝对路径"E:/code/Python_project/pending_files/1836A.xlsx"。

📚参考链接
①VScode - 相对路径
②[报错] VSCODE无法识别相对路径
③绝对路径和相对路径区别详解
④什么是相对路径?相对路径的具体写法和用法
⑤Python绝对路径和相对路径详解


http://www.mrgr.cn/news/79991.html

相关文章:

  • 基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 训练过程
  • CSS的2D和3D动画效果
  • 算法训练营day1 | 704二分查找,27移除元素, 34, 35
  • 深度学习笔记之BERT(五)TinyBERT
  • 人脸识别Adaface之libpytorch部署
  • Apache APISIX快速入门
  • 使用 mkcert 工具自签发 https 证书并进行本地受信
  • es 3期 第15节-词项查询与跨度查询实战运用
  • chattts生成的音频与字幕修改完善,每段字幕对应不同颜色的视频,准备下一步插入视频。
  • ArcGIS MultiPatch数据转换Obj数据
  • 优秀前端文章笔记----持续更新(20241211-至今)
  • YashanDB 23.2 YAC 共享集群部署和使用自带YMP迁移工具进行数据迁移,效果很city
  • 麒麟系统+达梦数据库+MybatisPlus+Redis+SpringBoot
  • 使用Windbg排查C++软件安装包安装时被安全软件拦截导致安装堵塞(线程卡住)的问题
  • 360极速浏览器不支持看PDF
  • MinerU:PDF文档提取工具
  • 在CentOS中安装和卸载mysql
  • centos部署SkyWalking以及在springcloud项目中搭配loki使用
  • 【优选算法 模拟】模拟算法入门详解 : 模拟算法小专题
  • Gitlab ci/cd
  • Maven插件打包发布远程Docker镜像
  • strace,tcmalloc,asan使用
  • jmeter CLI Mode 传参实现动态设置用户数
  • 腾讯微信Android面试题及参考答案(多张原理图)
  • soul Java开发面试题及参考答案
  • 110.【C语言】数据结构之判断是否为完全二叉树