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