如何在Python中获取文件的具体目录?
How can i achieve the specific directory of a file in Python?
所以我是 Python 的新手,正如预测的那样,我 运行 在尝试找出文件的目录时遇到了问题。在我的 IDE 中,当我 运行 代码时:
Import OS
print(os.path.abspath("background.png"))
它工作正常。 (请记住,图片与 Python 代码位于同一目录中。我还知道您可以使用以下内容:
print(os.path.abspath(r"OldBGs\background.png"))
这个returns:
C:\Users\me\Desktop...几个文件夹...\OldBGs\background.png
这就是我目前正在使用的。但是,当我尝试在没有 IDE 的情况下 运行 我的代码时(我通过右键单击 code.py 然后选择使用 Python 3.8 打开),出于某种原因它输出:
C:\WINDOWS\system32\OldBGs\backgroundold.png
这很痛苦,尽管它适用于我的 IDE,但我需要确保无论谁 运行 编写我的代码(with/without 和 IDE).
实现此目的的一种方法是使所有路径都相对于脚本文件本身的位置。
您可以通过以下方式获取脚本目录的路径:
import os
SCRIPT_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
然后,您可以定义相对于SCRIPT_DIRECTORY
的所有路径。例如:
BACKGROUND_PICTURE_PATH = os.path.join(SCRIPT_DIRECTORY , "background.png")
此路径现在不再取决于脚本 运行 的来源,而是脚本文件本身所在的位置。这意味着无论您是否在 IDE.
中,它都将是相同的路径
在python中,您可以使用命令os.chdir(your_path)
更改您的目录。
然后你可以添加到你的脚本中:
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
如果你想打开你现在可以使用的文件:
file = open("background.png")
然后你从 file.py 开始。如果您的文件“background.png”在同一目录中,您可以使用以下方式访问该路径:
os.path.join(os.path.dirname(os.path.abspath(__file__)), "background.png")
然后,如果您想返回目录,请使用:
os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "background.png")
在某些 IDE 中,您可以在执行中添加一些 bash 行。只需添加命令 cd SCRIPT_PATH
(SCRIPT_PATH 的变量是 IDE 相关的)
所以我是 Python 的新手,正如预测的那样,我 运行 在尝试找出文件的目录时遇到了问题。在我的 IDE 中,当我 运行 代码时:
Import OS
print(os.path.abspath("background.png"))
它工作正常。 (请记住,图片与 Python 代码位于同一目录中。我还知道您可以使用以下内容:
print(os.path.abspath(r"OldBGs\background.png"))
这个returns:
C:\Users\me\Desktop...几个文件夹...\OldBGs\background.png
这就是我目前正在使用的。但是,当我尝试在没有 IDE 的情况下 运行 我的代码时(我通过右键单击 code.py 然后选择使用 Python 3.8 打开),出于某种原因它输出:
C:\WINDOWS\system32\OldBGs\backgroundold.png
这很痛苦,尽管它适用于我的 IDE,但我需要确保无论谁 运行 编写我的代码(with/without 和 IDE).
实现此目的的一种方法是使所有路径都相对于脚本文件本身的位置。
您可以通过以下方式获取脚本目录的路径:
import os
SCRIPT_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
然后,您可以定义相对于SCRIPT_DIRECTORY
的所有路径。例如:
BACKGROUND_PICTURE_PATH = os.path.join(SCRIPT_DIRECTORY , "background.png")
此路径现在不再取决于脚本 运行 的来源,而是脚本文件本身所在的位置。这意味着无论您是否在 IDE.
中,它都将是相同的路径在python中,您可以使用命令os.chdir(your_path)
更改您的目录。
然后你可以添加到你的脚本中:
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
如果你想打开你现在可以使用的文件:
file = open("background.png")
然后你从 file.py 开始。如果您的文件“background.png”在同一目录中,您可以使用以下方式访问该路径:
os.path.join(os.path.dirname(os.path.abspath(__file__)), "background.png")
然后,如果您想返回目录,请使用:
os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "background.png")
在某些 IDE 中,您可以在执行中添加一些 bash 行。只需添加命令 cd SCRIPT_PATH
(SCRIPT_PATH 的变量是 IDE 相关的)