在Python中使用argparse将命令行参数解析为IP:Port格式

2024-10-01 00:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用argparse解析脚本的两个命令行参数,格式如下client.py [-n IP] [-p PORT]

到目前为止,我已经实现了以下内容:

connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
## Gets IP and PORT from command line and parses them
ConnectionInfo = argparse.ArgumentParser()
ConnectionInfo.add_argument("-n",  default=socket.gethostname())
ConnectionInfo.add_argument("-p", type=int, default='58000')
ConnectionInfoParsed = ConnectionInfo.parse_args()
# Saves the parsed IP and Port
HOST = ConnectionInfoParsed.n
PORT = ConnectionInfoParsed.p
# Connects to Server
connection.connect((HOST, PORT))

但是,当我执行以下操作时:

^{pr2}$

我得到以下错误

usage: client.py [-h] [-n N] [-p P]
client.py: error: unrecognized arguments: [-n 127.0.0.1] [-p 58000]

有人能帮我解决问题在哪里吗?还有错误中的[-h]参数是从哪里来的,因为我没有为它添加任何参数?在


Tags: andpyipclientadddefaulthost参数