运行 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__
以确定脚本的位置并在该目录中查找数据文件。
所以我有一个 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__
以确定脚本的位置并在该目录中查找数据文件。