前言: 
 近日在学习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绝对路径和相对路径详解



















