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

Python根据用户输入搜索txt文件输出对应目的地遇索引越界问题

问题解决

错误原因

  • 语法错误:原有代码最后一行print ([data[1])多写了一个左方括号,会触发语法报错
  • 字段匹配问题:每行按逗号分割后,各字段前后带有多余空格,会导致用户输入的纯文本无法正常匹配
  • 索引越界触发原因:如果文件中存在空行、或者格式不符合4字段规范的异常行,分割后得到的列表长度不足2,访问data[0]/data[1]时就会触发索引越界错误
  • 文件资源未手动释放,存在资源泄漏风险

修复后代码

search = input('Please enter the name or ID number of the destination:\n').strip()
# 使用上下文管理器自动处理文件关闭
with open('destinations.txt', 'r', encoding='utf-8') as f:
    info = f.readlines()

is_found = False
for line in info:
    line = line.strip()
    # 跳过空行
    if not line:
        continue
    # 分割后对每个字段去除前后空白
    data = [item.strip() for item in line.split(',')]
    # 跳过字段数不足的异常行,避免索引越界
    if len(data) < 2:
        continue
    if search == data[0]:
        print(data[1])
        is_found = True
        break
    elif search == data[1]:
        print(data[1])
        is_found = True
        break

if not is_found:
    print('未查询到匹配的目的地信息')

代码说明

  • 新增空行、异常格式行过滤逻辑,从根源避免索引越界问题
  • 对所有分割后的字段做去空白处理,解决空格导致的匹配失败问题
  • 修正原有语法错误,优化匹配逻辑,匹配成功后直接终止遍历减少性能消耗
  • 新增未匹配提示,提升交互体验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:45:02