Skip to main content
 首页 » 编程设计

python之Argparse 和命令行语法

2025年05月04日10mayingbao

我正在编写一个程序,它接受一个文件参数,如 *.xml 或 *.txt 或类似的东西。例如:

parser.add_argument("-f", "--file") 
args=parser.parse_args() 

例如

python myprog.py -f *.xml 

然后 args.file 不会给出命令行字符串 *.xml,而是目录列表而不是符合 *.xml ,但这不是我想要的行为。

所以这是我的问题:有没有办法将 `*.xml 作为字符串获取。我知道你可以输入

python myprog.py -f '*.xml' 

但对于许多不同的用户来说,这将不起作用,因为有些人会忘记 '。

换句话说,我需要在命令行中输入的原始文本。

请您参考如下方法:

问题是 shell 在到达 python 或 argparse 之前扩展了 *。尝试转义它,这样 shell 就不会像这样处理它

python myprog.py -f \*.xml