Python 在VS代码中引用子目录是如何工作的?

Python 在VS代码中引用子目录是如何工作的?,python,file,Python,File,我对编码还是相当陌生,我注意到(在VS代码中)当您引用与文件夹相关的文件时(例如:f='images/myImg.png'当您的主“.py”文件与图像文件夹位于同一文件夹中时),它不起作用,这取决于您打开的文件夹。请看图片以便更好地理解 当我在C:\Users\myName\Coding Projects\TkProjects中时: “Flashcard应用程序/images/icon.png”有效 当我在C:\Users\myName\Coding Projects\TkProjects\A

我对编码还是相当陌生,我注意到(在VS代码中)当您引用与文件夹相关的文件时(例如:f='images/myImg.png'当您的主“.py”文件与图像文件夹位于同一文件夹中时),它不起作用,这取决于您打开的文件夹。请看图片以便更好地理解

当我在
C:\Users\myName\Coding Projects\TkProjects中时

“Flashcard应用程序/images/icon.png”有效

当我在
C:\Users\myName\Coding Projects\TkProjects\Apps\Flashcard App中时

“Flashcard App/images/icon.png”不起作用,images/icon.png起作用


为什么会这样?“Flashcard_app.py”不应该只在其目录(其自己的文件夹“Flashcard app”)中查找“images/icon.png”,因为在am中,这两种情况下都仍然在“Flashcard app”文件夹中。我是否必须始终引用路径(完整路径)而不是相对于文件的路径(相对路径)?或者我在这里遗漏了什么?

这与VSCode(本身)无关,而是取决于执行时python代码的cwd(当前工作目录)。这与文本编辑器无关。您需要了解工作目录、相对文件路径和绝对文件路径的概念。我注意到您已经在Flashcard_应用程序目录中。可能尝试从文件路径中删除Flashcard_应用,因为主文件已在当前目录中。您正在指定相对路径-它们是相对于当前工作目录的。如果更改进程的工作目录,它们将指向另一个位置。您可能想编写与Python源文件本身相关的路径-有一个神奇的常量
\uuuuuu file\uuuuu
及其路径,这样您就可以从它构建指向所需的确切其他文件的绝对路径,而不管当前的工作目录如何。谢谢大家的回复,非常感谢。