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

如何修改Python程序以通过命令行参数传入国家代码并输出对应邮箱

修改后的Python代码(支持命令行传入国家代码)

没问题,我帮你调整代码来实现通过命令行参数传入国家代码的需求,同时修复原代码里的几处小问题:

import pandas as pd
import sys

def filter_emails_by_country(country_code):
    # 修复拼写错误:read_CVS -> read_csv(pandas的正确方法名)
    data = pd.read_csv("filename")
    # 用字典映射国家对应的允许邮箱域名,后续扩展其他国家更方便
    country_domains = {
        'US': ['yahoo.com'],
        'UK': ['yahoo.com', 'yahoo.co.uk']
    }
    
    # 校验传入的国家代码是否在支持范围内
    if country_code not in country_domains:
        print(f"错误:不支持的国家代码 {country_code},目前仅支持 US/UK")
        return
    
    print(f"正在筛选 {country_code} 对应的邮箱...")
    # 遍历所有邮箱地址
    for email in data['emailid']:
        # 拆分邮箱获取域名部分,同时处理格式错误的邮箱
        try:
            domain = email.split('@')[1]
        except IndexError:
            print(f"跳过格式无效的邮箱:{email}")
            continue
        # 判断域名是否符合当前国家要求
        if domain in country_domains[country_code]:
            print(email)

if __name__ == "__main__":
    # 检查用户是否传入了正确数量的命令行参数
    if len(sys.argv) != 2:
        print("用法:python programname.py <国家代码>,例如:python programname.py 'UK'")
        sys.exit(1)
    # 获取命令行参数,转成大写兼容小写输入(比如'uk'也能识别)
    country = sys.argv[1].upper()
    filter_emails_by_country(country)

关键修改点说明:

  • 替换输入方式:移除了raw_input(),改用sys.argv[1]读取命令行传入的国家代码,同时增加参数校验,避免用户未传参数或传错参数时程序崩溃
  • 修复拼写错误:把原代码里的pd.read_CVS修正为pandas的正确方法pd.read_csv
  • 优化逻辑结构:用字典country_domains存储不同国家对应的允许域名,后续要添加其他国家(比如CA、AU)时,直接在字典里新增条目即可,代码更易维护
  • 增加容错处理:添加了对格式无效邮箱的捕获,避免因邮箱格式错误导致程序中断,同时支持大小写不敏感的国家代码输入
  • 适配Python 3:改用Python 3的语法(比如print()加括号、f-string格式化),如果需要兼容Python 2,可以调整print语句和字符串格式化方式

使用示例:

在命令行中运行以下命令即可:

python programname.py 'UK'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:52:31