我正在使用带有以下参数定义的python argparse:
parser.add_argument('path', nargs=1, help='File path to process')
但是当我输入带有wildcard
参数的命令时,argparse
会覆盖所有文件路径并以错误终止。
我怎样才能argparse
不去 glob 文件?
argparse
在有机会看到它之前,shell 正在扩展通配符参数。在通配符参数周围加上引号以防止 shell 扩展它。
您可以稍后使用glob.glob执行通配符扩展。
如何让 argparse 不全局化文件?
你没有。
你让 shell 停止 globbing。
然而。让我们想一想。
你在你的代码中说这个
parser.add_argument('path', nargs=1, help='File path to process')
但是当你运行它时,你实际上是在提供通配符。
这两个之一是错误的。在运行时停止提供通配符或修复 argparse 以允许多个文件名。
globbing 由您的 shell 完成,而不是由 argparse 模块完成。在开头打印sys.argv
,你会看到 argparse 得到什么作为输入。