从globbing文件路径中停止argparse

时间:2011-09-09 19:56:23

标签: python argparse

我正在使用带有以下参数定义的python argparse:

parser.add_argument('path', nargs=1, help='File path to process')

但是当我输入带有wildcard参数的命令时,argparse会覆盖所有文件路径并以错误终止。

如何让argparse不对文件进行全局化?

3 个答案:

答案 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作为输入的内容。