向包含元字符的Python字符串传递命令行参数
我试图从命令行(即向包含元字符的Python字符串传递命令行参数,python,argparse,Python,Argparse,我试图从命令行(即$Python parser_prog.py--opt1--opt2)将字符串作为输入参数传递给Python程序,并使用argparse解释这些参数。当然,如果包含任何元字符,它们首先由shell解释,因此需要引用 这似乎有效,字符串按字面意思传递,保留\*?!人物: $ python parser_prog.py 'str\1*?' 'str2!' 然而,当我试图通过一个“-”(连字符)字符时,我似乎无法屏蔽它。它被解释为无效选项 $ python parser_prog.
$Python parser_prog.py--opt1--opt2
)将字符串作为输入参数传递给Python程序,并使用argparse解释这些参数。当然,如果包含任何元字符,它们首先由shell解释,因此需要引用
这似乎有效,字符串按字面意思传递,保留\*?!人物:
$ python parser_prog.py 'str\1*?' 'str2!'
然而,当我试图通过一个“-”(连字符)字符时,我似乎无法屏蔽它。它被解释为无效选项
$ python parser_prog.py 'str\1*?' '-str2!'
我试过单引号和双引号,有没有办法确保Python将其解释为原始字符串?(我还不在解释器中,它在shell命令行中,所以我不能使用pythonic表达式,例如r'str1'
)
谢谢你的提示 正如您自己所说,Python只在shell处理后才看到字符串。命令行参数
'-f'
和-f
看起来与被调用的程序相同,因此无法对它们进行数据挖掘。也就是说,我认为argparse
支持一个--
参数来表示选项的结束,之后的所有内容都被视为位置参数。在解释了它们之后,伟大的见解总是显而易见的。谢谢,这是必要的,对我很有用。