我想知道如何使用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中它们是保存。
我希望能有更好的解释。对不起,我不是母语为英语的人。
答案 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()
,不将程序目录存储在任何位置。