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

如何修改Python代码读取TXT文件并识别每个姓名的性别

批量姓名性别识别脚本

以下是修改后的代码,支持读取TXT文件中的姓名列表,调用Genderize API识别性别并分类输出:

import requests
import json

# 读取TXT文件中的姓名(假设每行一个姓名)
def read_names_from_txt(file_path):
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            # 去除每行的换行符和空白字符,过滤空行
            names = [line.strip() for line in f if line.strip()]
        return names
    except FileNotFoundError:
        print(f"错误:未找到文件 {file_path}")
        return []

# 调用Genderize API获取性别
def get_gender(name):
    try:
        response = requests.get(f"https://api.genderize.io/?name={name}")
        response.raise_for_status()  # 检查请求是否成功
        data = response.json()
        return data.get('gender')  # 避免键不存在报错
    except requests.exceptions.RequestException as e:
        print(f"请求姓名 {name} 时出错:{e}")
        return None

def main():
    # 替换为你的TXT文件路径
    file_path = "names.txt"
    names = read_names_from_txt(file_path)
    if not names:
        return
    
    male_names = []
    female_names = []
    unknown_names = []
    
    for name in names:
        gender = get_gender(name)
        if gender == 'male':
            male_names.append(name)
        elif gender == 'female':
            female_names.append(name)
        else:
            unknown_names.append(name)
    
    # 输出结果
    print("=== 男性姓名 ===")
    for name in male_names:
        print(name)
    
    print("\n=== 女性姓名 ===")
    for name in female_names:
        print(name)
    
    if unknown_names:
        print("\n=== 无法识别性别/无结果姓名 ===")
        for name in unknown_names:
            print(name)

if __name__ == "__main__":
    main()

功能说明

  • 文件读取:自动读取指定TXT文件,每行一个姓名,过滤空行和无效内容,同时处理文件不存在的异常。
  • API请求优化:加入网络异常捕获,直接使用response.json()解析返回结果,避免原代码中手动转JSON的冗余操作;用get方法获取性别字段,防止API返回无gender字段时崩溃。
  • 分类输出:将姓名按男性、女性、无法识别三类分别存储并输出,结果清晰直观。
  • 使用提示:将代码中的file_path替换为你的姓名文件路径即可运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:15:35