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

如何为Python编写的Telegram词典机器人实现CSV单词前缀搜索功能?

功能实现方案

现有代码问题排查

  1. CSV读取逻辑冗余:你当前使用默认逗号分隔的csv读取规则,后续手动拆分制表符,容易出现解析错误
  2. 匹配逻辑不符合要求:用in关键字实现的是任意位置包含匹配,不是前缀匹配,且没有处理大小写差异,比如用户输入ent无法匹配大写开头的Entity

修改后代码

import csv

def malayalamDict(prefix):
    mDef = []
    eWrd = []
    # 统一转换为小写实现大小写不敏感匹配,符合用户输入习惯
    target_prefix = prefix.lower()
    with open("data/olam-enml.csv", "r", encoding="utf-8") as f:
        # 直接指定制表符为分隔符,无需后续手动拆分
        reader = csv.reader(f, delimiter="\t")
        # 跳过表头行(id english_word part_of_speech definition)
        next(reader)
        for row in reader:
            # 取第二列english_word,转小写后判断是否以前缀开头
            if row[1].lower().startswith(target_prefix):
                eWrd.append(row[1])
                mDef.append(row[-1])
    return mDef, eWrd

可选补充逻辑

如果需要限制用户仅能输入2-3位首字母查询,可以在调用该函数的上层逻辑中增加长度校验:

user_query = 用户输入内容.strip()
if 2 <= len(user_query) <= 3:
    definitions, words = malayalamDict(user_query)
    # 此处添加组装返回结果给Telegram用户的逻辑
else:
    # 此处添加提示用户输入2-3位首字母的逻辑
    pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:57:00