Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向包含元字符的Python字符串传递命令行参数_Python_Argparse - Fatal编程技术网

向包含元字符的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
支持一个
--
参数来表示选项的结束,之后的所有内容都被视为位置参数。

在解释了它们之后,伟大的见解总是显而易见的。谢谢,这是必要的,对我很有用。