在我的脚本中,我有3个位置参数和1个可选参数。三个位置参数中的一个是必需的,其余的是可选的(如使用narg='?'指定的)。在
我的可选参数不传递任何其他参数(action='store'true'),它只是用来启用排序,稍后将实现排序。在
但是,我的问题是,我的可选参数只有在它是脚本调用中的第一个或最后一个参数时才起作用。在
以下是我目前为止的剧本:parser = argparse.ArgumentParser()
parser.add_argument("-s", "--sort", help="option to sort the ip addresses", action='store_true')
parser.add_argument("file_name", help="Name of the file containing the tcpdump")
parser.add_argument("source_IP", nargs='?', type=str, help="Source ip to search")
parser.add_argument("dest_IP", nargs='?', type=str, help="Destination ip to search")
args = parser.parse_args()
如果我在任何其他位置参数之间输入-s,我会得到一个错误。在
^{pr2}$
usage: 1 [-h] [-s] file_name [source_IP] [dest_IP]
1: error: unrecognized arguments: 192.168.152.32 192.168.0.25
我的目标是能够在脚本调用的任何地方输入我的可选参数(-s),并使其正常工作。在