You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从sys.argv传入的邮箱参数中提取@与.之间的内容

问题修复与实现方案

现有代码的第一个错误

你当前对sys.argv的调用方式错误,sys.argv是存储命令行参数的列表,访问元素需要用方括号而非圆括号,正确写法为sys.argv[1]。

提取服务商名称的实现逻辑

你可以通过两次字符串分割拿到目标内容:

  1. 先用@对邮箱字符串做分割,取后半部分
  2. 再用.对后半部分做分割,取第一个元素即可得到@和第一个.之间的内容

完整修正代码

import sys

def gmail():
    # 自定义Gmail邮箱处理逻辑
    print("检测到Gmail邮箱")

def protonmail():
    # 自定义Protonmail邮箱处理逻辑
    print("检测到Protonmail邮箱")

try:
    # 修正argv的访问写法
    argx = sys.argv[1]
    # 分割提取目标内容
    after_at = argx.split("@")[1]
    x = after_at.split(".")[0]
except (IndexError, ValueError):
    # 覆盖参数缺失、邮箱格式不符合要求的场景
    print("请输入正确的邮箱地址")
else:
    # 无异常才执行校验逻辑
    if x.lower() == "gmail":
        gmail()
    elif x.lower() == "protonmail":
        protonmail()
    # 其他服务商判断可继续追加elif

注意事项

  • 上述异常捕获覆盖了「没有传入参数」「邮箱没有@字符」「@后面没有.字符」三类异常场景,避免程序直接报错退出
  • 你提供的示例代码中x.lower == "protonmail"存在语法错误,lower是字符串方法,需要加括号调用,正确写法为x.lower()
  • 如果你需要匹配多级域名的特殊场景(比如xxx@mail.gmail.com),可以调整分割逻辑,按需取对应的split结果即可

内容的提问来源于stack exchange,提问作者trojan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:36:04