【问题标题】:How to set relative path to executive script [duplicate]如何设置执行脚本的相对路径[重复]
【发布时间】:2016-07-08 01:48:24
【问题描述】:

我想使用我的执行脚本设置文件夹的相对路径,该脚本可以在任何机器上工作,而无需硬编码文件的绝对路径。 到目前为止,我有以下内容:

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,我就会得到

C:\Users\Me\

设置相对路径更可靠的方法是什么?

【问题讨论】:

    标签: python


    【解决方案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)     
    

    【讨论】:

    • 谢谢。它似乎工作!
    【解决方案2】:

    您也可以在没有 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 2010-11-14
      • 2012-05-12
      • 1970-01-01
      • 2022-01-28
      • 1970-01-01
      相关资源
      最近更新 更多