是否可以使用argparse获取脚本的路径?

时间:2013-07-01 13:53:41

标签: python command-line

我想知道如何使用argparse获取脚本存储的路径,因为如果我从另一个路径运行脚本(我在%PATH%变量中有脚本的路径),它使用默认情况下,相对路径。

我知道我可以使用以下方式获取它:

import sys sys.argv[0]

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

由于 编辑:我有我的回复,我很满意。 为了更好地解释这个问题:我有一个名为mdv.py的脚本,用于将markdown文件转换为html。我想从我电脑的任何位置拨打电话。 该脚本位于: C:\ Python27 \降价

在此路径中还有其他文件和文件夹模板,我用它来生成我的HTML(默认样式表和标题,正文和页脚的文件)。

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

当我从非标准路径调用脚本时,例如c:\ dropbox \ public,它在c:\ dropbox \ public \ templates中查找这些文件,而不是在c:\ python27 \ markdown \ templates中它们是保存。

我希望能有更好的解释。对不起,我不是母语为英语的人。

1 个答案:

答案 0 :(得分:2)

你正在寻找prog parameter;您可以使用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()将程序目录存储在任何位置。

相关问题