Python如何提取单条用户输入的第二个参数存入指定变量供函数调用
问题解决
原有代码核心错误点
- argparse 是用于解析程序启动时传入的命令行参数(即 sys.argv 内容)的工具,不适合直接解析运行时通过 input 获取的单行输入字符串,原有使用方式完全不符合该库的设计用途
- 原代码调用 requests 时取状态码的属性错误,正确属性为
status_code而非status - 未对输入做分割处理,无法分离命令前缀和后续参数
修正后可运行代码
import requests def test(url): try: bb = requests.get(url, timeout=10) if bb.status_code == 200: return "Success" else: return False except Exception as e: print(f"请求出错:{e}") return False def main(): x = input("Choose: ").strip() # 最多分割1次,避免参数本身携带空格时被错误切割 parts = x.split(maxsplit=1) if len(parts) < 2: print("输入格式错误,示例:check-status https://example.com") return cmd, dd_dest = parts if cmd == "check-status": res = test(dd_dest) print(res) if __name__ == "__main__": main()
关键修改说明
- 直接对输入字符串做分割处理,拿到的第二个元素就是你需要存入
dd.dest的目标参数,直接传递给 test 函数即可 - 增加了输入合法性校验,避免用户输入参数不足导致索引报错
- 给 requests 请求增加了超时设置和异常捕获,避免网络问题导致程序直接崩溃
- 修复了状态码获取的属性错误
内容的提问来源于stack exchange,提问作者user17141038
相关产品推荐
相关产品推荐

