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

news2024/12/18 15:20:56

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

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

问题:
笔者欲在draw_chart.py编码文件里调用处理1836A.xlsx文件。
这里先贴上笔者使用相对路径的 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.coloradmin.cn/o/2261651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++理解(三)

本文主要探讨c相关知识。 模板是对类型参数化 函数模板特化不是模板函数重载 allocator(空间配置器):内存开辟释放,对象构造析构 优先调用对象成员方法实现的运算符重载函数,其次全局作用域找 迭代器遍历访问元素,调用erase,insert方法后,当前位置到容器…

「九」HarmonyOS 5 端云一体化实战项目——「M.U.」应用云侧开发云数据库

1 立意背景 M. 代表 “我”,U. 代表 “你”,这是一款用于记录情侣从相识、相知、相恋、见家长、订婚直至结婚等各个阶段美好记忆留存的应用程序。它旨在为情侣们提供一个专属的空间,让他们能够将一路走来的点点滴滴,如初次相遇时…

NVM:安装配置使用(详细教程)

文章目录 一、简介二、安装 nvm三、配置 nvm 镜像四、配置环境变量五、使用教程5.1 常用命令5.2 具体案例 六、结语 一、简介 在实际的开发和学习中可能会遇到不同项目的 node 版本不同,而出现的兼容性问题。 而 nvm 就可以很好的解决这个问题,它可以在…

Spark优化----Spark 数据倾斜

目录 数据倾斜的表现: 定位数据倾斜问题: 解决方案一:聚合原数据 避免 shuffle 过程 缩小 key 粒度(增大数据倾斜可能性,降低每个 task 的数据量) 增大 key 粒度(减小数据倾斜可能性&#xff0c…

第十六届蓝桥杯模拟赛(第一期)-Python

本次模拟赛我认为涉及到的知识点: 分解质因数 Python的datetime库 位运算 简单dp 1、填空题 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结…

MATLAB2021B APP seriallist 串口通信

文章目录 前言一、项目需要二、使用步骤1.查找串口填写到查找列表2.发送函数3. 接收函数4.检测串口按钮5.选择串口号 总结 前言 提示:这里可以添加本文要记录的大概内容: 项目需要: 提示:以下是本篇文章正文内容,下面…

OpenShift 4 - 多云管理(2) - 配置多集群观察功能

《OpenShift / RHEL / DevSecOps 汇总目录》 本文在 OpenShift 4.17 RHACM 2.12 环境中进行验证。 文章目录 多集群观察技术架构安装多集群观察功能监控多集群的运行状态监控多集群的应用运行在被管集群监控应用运行在管理集群监控被管集群的应用运行 参考 多集群观察技术架构…

AMBA-CHI协议详解(十二)

AMBA-CHI协议详解(一)- Introduction AMBA-CHI协议详解(二)- Channel fields / Read transactions AMBA-CHI协议详解(三)- Write transactions AMBA-CHI协议详解(四)- Other transac…

【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

一、RAGFlow简介 RAGFlow是一个基于对文档深入理解的开源RAG(Retrieval-augmented Generation,检索增强生成)引擎。 主要作用: 让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大…

Android中坐标体系知识超详细讲解

说来说去都不如画图示意简单易懂啊!!!真是的! 来吧先上张图! (一)首先明确一下android 中的坐标系统: 屏幕的左上角是坐标系统原点(0,0) 原点向右延伸是X轴正…

IO的进阶

目录 1. 字符流转向字节流的桥梁1.1 OutputStreamWriter1.2 InputStreamReader1.3 编码与解码1.4 常见编码方式1.5 编码与解码的注意事项 2.Properties2.1概述2.2 Properties 的常用方法2.3 Properties 的应用场景2.4 实例 3.序列化3.1 ObjectOutputStream 4.字符编码4.1 ASCII…

【计算机网络】期末考试预习复习|中

作业讲解 转发器、网桥、路由器和网关(4-6) 作为中间设备,转发器、网桥、路由器和网关有何区别? (1) 物理层使用的中间设备叫做转发器(repeater)。 (2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。 (3) 网络层使用的中间设备叫做路…

Edge Scdn用起来怎么样?

Edge Scdn:提升网站安全与性能的最佳选择 在当今互联网高速发展的时代,各种网络攻击层出不穷,特别是针对网站的DDoS攻击威胁,几乎每个行业都可能成为目标。为了确保网站的安全性与稳定性,越来越多的企业开始关注Edge …

UE4_控件蓝图_制作3D生命血条

一:效果图如下: 二、实现步骤: 1、新建敌人 右键蓝图类 选择角色, 重命名为BP_Enemytest。 双击打开,配置敌人网格体 修改位置及朝向 效果如下: 选择合适的动画蓝图类: 人物就有了动作&#x…

厦门凯酷全科技有限公司引领电商营销新风尚

在当今数字化经济快速发展的背景下,抖音作为领先的短视频和直播平台,已成为品牌推广和产品销售的重要渠道。厦门凯酷全科技有限公司(以下简称“凯酷全”)凭借其专业的团队和丰富的经验,专注于为客户提供高质量的抖音电…

高扬程潜水泵:大流量与高效率的完美结合|深圳鼎跃

洪水是由暴雨、风暴潮等等自然因素引起的江河湖海水量迅速增加或水位迅猛上涨的水流现象。一旦发生洪水事件,会侵袭河道沿岸的城市、农田等场景,在低洼地区容易形成积水,不仅影响人们的生活,还存在一定的安全风险。 高扬程潜水泵是…

神经网络基础-神经网络搭建和参数计算

文章目录 1.构建神经网络2. 神经网络的优缺点 1.构建神经网络 在 pytorch 中定义深度神经网络其实就是层堆叠的过程,继承自nn.Module,实现两个方法: __init__方法中定义网络中的层结构,主要是全连接层,并进行初始化。…

web网页前后端交互方式

参考该文&#xff0c; 一、前端通过表单<form>向后端发送数据 前端是通过html中的<form>表单&#xff0c;设置method属性定义发送表单数据的方式是get还是post。 如使用get方式&#xff0c;则提交的数据会在url中显示&#xff1b;如使用post方式&#xff0c;提交…

Mac配置 Node镜像源的时候报错解决办法

在Mac电脑中配置国内镜像源的时候报错,提示权限问题,无法写入配置文件。本文提供解决方法,青测有效。 一、原因分析 遇到的错误是由于 .npm 目录下的文件被 root 用户所拥有,导致当前用户无法写入相关配置文件。 二、解决办法 在终端输入以下命令,输入管理员密码即可。 su…

Linux实操篇-远程登录/Vim/开机重启

目录 传送门前言一、远程登录1、概念2、ifconfig3、实战3.1、SSH&#xff08;Secure Shell&#xff09;3.2、VNC&#xff08;Virtual Network Computing&#xff09;3.3、RDP&#xff08;Remote Desktop Protocol&#xff09;3.4、Telnet&#xff08;不推荐&#xff09;3.5、FT…