`argparse` 读取本地文件的值,而不是字符串

Value of `argparse` reading local files, instead of string

import argparse

if __name__=='__main__':
    parser= argparse.ArgumentParser()
    parser.add_argument('--template')

    args= parser.parse_args()

    print(args.template)

above_file.py --template sub-*/my/file.txt

读取模式描述的所有文件,而不是字符串 sub-*/my/file.txt。我只想阅读字符串。我通过将值包含在 " " 中找到了解决方法。但我想知道是否可以在 add_argument 内部做些什么来防止这种情况发生。

很遗憾,无法完成。该模式由您的 shell 扩展,从您的 python 脚本中您无法知道您的脚本是否被称为

python above_file.py --template sub-*/my/file.txt

python above_file.py --template sub-1/my/file.txt sub-2/my/file.txt sub-3/my/file.txt

您可以在 shell 上做什么:Stop shell wildcard character expansion?