Argparse和命令行语法

Pet*_*ger 1 python argparse

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

parser.add_argument("-f", "--file")
args=parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

例如

python myprog.py -f *.xml
Run Code Online (Sandbox Code Playgroud)

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

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

python myprog.py -f '*.xml'
Run Code Online (Sandbox Code Playgroud)

但对于很多不同的用户来说,这是行不通的,因为有些人会忘记'.

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

Eri*_*ouf 5

问题是shell *在进入python或argparse之前正在扩展它.尝试转义它,以便shell不会像处理它一样

python myprog.py -f \*.xml
Run Code Online (Sandbox Code Playgroud)