我想用我的执行脚本设置文件夹的相对路径,该脚本可以在没有硬编码绝对路径到文件的情况下从任何机器上运行。 到目前为止,我有以下内容:
org.codehaus.plexus.compiler.javac.IsolatedClassLoader
当我从import os
path_to_folder = os.path.realpath('.')
调用PyCharm
运行我的脚本时,返回正确的路径
print(path_to_folder)
但如果我尝试从C:\Users\Me\Desktop\Project\Script\
cmd
调用它,我只需
python3.4 C:\Users\Me\Desktop\Project\Script\my_script.py
设置相对路径的更可靠方法是什么?
答案 0 :(得分:1)
我曾经使用Pathlib
# 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)
答案 1 :(得分:0)
你也可以在没有Pathlib的情况下使用Python定义每个模块的__file__变量。
在父脚本中:
from os.path import dirname, abspath
path_to_folder = abspath(dirname(__file__))
print(path_to_folder)
或者更一般地说,如果您只是想知道模块的位置,您可以这样做:
from os.path import dirname, abspath
import mymodule
path_to_folder = abspath(dirname(mymodule.__file__))
print(path_to_folder)