How to set relative path to executive script
本问题已经有最佳答案,请猛点这里访问。
我想用我的执行脚本设置文件夹的相对路径,它可以在任何计算机上运行,而不需要将绝对路径硬编码为文件。到目前为止,我有以下几点:
1 2 | import os path_to_folder = os.path.realpath('.') |
当我从
但是如果我试着从
设置相对路径的更可靠方法是什么?
我以前用Pathlib
1 2 3 4 5 6 7 8 | # get sibling file sib = Path(__file__).with_name(same_level_file) # get parent par = Path(__file__).parent # file in sibling parent sib2 = Path(__file__).parent.with_name(parent_folder).joinpath(file2) |
您也可以在没有pathlib的情况下,使用python定义每个模块的文件变量来完成这项工作。
在父脚本本身中:
1 2 3 | from os.path import dirname, abspath path_to_folder = abspath(dirname(__file__)) print(path_to_folder) |
或者更一般地说,如果您只想知道模块的位置,您可以执行以下操作:
1 2 3 4 | from os.path import dirname, abspath import mymodule path_to_folder = abspath(dirname(mymodule.__file__)) print(path_to_folder) |