运行 python 当脚本有文件路径时来自目录外的代码

Running python codes from outside the directory when script has filepaths

所以我有一个 python 脚本 my_script.py 位于文件夹 Test 内,而我位于该文件夹外。该脚本需要从存储在文件夹 Test 中的文件 my_data.dat 访问一些输入数据。

现在,当我尝试从文件夹 Test 外部 运行 此脚本时,使用简单的 python my_script.py,它会尝试在文件夹中找到 my_data.dat我正在 运行 编写脚本,所以失败了。我如何告诉它使用正确的路径而不实际修改 my_script.py 中的路径?

我不想修改脚本中的路径,因为脚本一般用于各种路径,整个过程稍后会自动进行。

您需要使用绝对文件路径而不是相对文件路径。

获取包含 python 文件的目录的绝对路径:

import os
ROOT_DIR = os.path.dirname(__file__)

并且可以获得my_data.dat

的绝对路径
data_file_path = os.path.join(ROOT_DIR, 'my_data.dat')

之后使用 data_file_path 而不是 "my_data.dat"

您可以将 my_data.dat 的路径作为参数传递给脚本,或者(如果数据文件始终与脚本位于同一目录中)您可以使用变量 __file__以确定脚本的位置并在该目录中查找数据文件。