是否有可能使用argparse获得脚本的路径?(Is it possible to obtain t

2019-11-02 06:11发布

我想知道如何获得该脚本是,如果可能的存储与argparse,路径,因为如果我从另一个路径运行脚本(我在%PATH%变量的脚本的路径),它默认使用相对路径。

我知道我可以用它获得:

import sys sys.argv[0]

但我想知道是否有可能直接从argparse模块接取它。

感谢编辑:我有我的答复,我很满意。 为了更好地解释这个问题:我有一个脚本调用mdv.py,我使用降价文件转换为HTML。 我想从我的计算机中的任何位置调用它。 该脚本是:C:\ Python27 \降价

在这条道路还有其他的文件和我使用生成我的HTML(默认的样式表和文件的标题,正文和页脚)的文件夹模板。

这些文件是:C:\ Python的\ 27 \降价\降价\模板

当我打电话从一个非标准路径下的脚本,例如C:\保管箱\公共它会在C:\保管箱\这些文件,而不是在C公共\模板:\ python27 \降价\模板在那里它们被保存。

Ihope有更好的解释。 对不起,我不是以英语为母语。

Answer 1:

认为你正在寻找prog参数 ; 你可以插值sys.argv[0]到您的帮助字符串用%(prog)s

为值prog可以在创建时被设置ArgumentParser()实例; 它是第一个参数:

parser = argparse.ArgumentParser('some_other_name')

且可与被检索.prog属性:

print(parser.prog)  # prints "some_other_name"

然而argparse调用os.path.basename()这个名字, 存储程序的目录中的任何地方。



文章来源: Is it possible to obtain the path of the script using argparse?