0

我正在尝试将字符串作为输入参数传递给 Python 程序,从命令行 ie$python parser_prog.py <pos1> <pos2> --opt1 --opt2并使用 argparse 解释这些。当然,如果包含任何元字符,这些元字符首先由 shell 解释,因此需要引用。

这似乎可行,字符串按字面意思传递,保留 \*?! 人物:

$ python parser_prog.py 'str\1*?' 'str2!'

但是,当我尝试通过“-”(连字符)字符时,我似乎无法掩盖它。它被解释为无效选项。

$ python parser_prog.py 'str\1*?' '-str2!'

我试过单引号和双引号,有没有办法确保 Python 将其解释为原始字符串?(我还没有在解释器中,这是在shell命令行上,所以我不能使用pythonic表达式,例如r'str1'

感谢您的任何提示!

4

1 回答 1

2

正如您自己所说,Python仅在经过外壳处理后才能看到字符串。命令行参数看起来'-f'-f被调用的程序相同,并且无法对它们进行区分。也就是说,我认为这argparse支持--表示选项结束的论点,之后的所有内容都被视为位置论点。

于 2013-07-24T20:44:33.307 回答