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

开发measles.txt年份筛选程序:支持不完整年份匹配的问题

解决不完整年份匹配的方案

嘿,这个不完整年份匹配的问题其实很好搞定!核心思路就是把年份当成字符串来处理,用子串包含的方式判断匹配,而不是局限于数字的完全相等。下面我给你一步步拆解实现方法,用Python为例:

核心思路

不管用户输入的是"19"、"87"还是"98",我们只需要检查每行里的Year字段对应的字符串是否包含用户输入的内容——这样不管是前两位、后两位还是中间的片段,都能精准匹配到。

完整代码示例

假设你的measles.txt是CSV格式(每行用逗号分隔字段,Year是其中一个字段),代码可以这么写:

# 获取用户输入的年份(支持不完整)
user_year = input("请输入年份(支持不完整年份,比如19、87):").strip()

# 处理空输入的情况
if not user_year:
    print("请输入有效的年份内容哦!")
    exit()

# 读取源文件并写入匹配结果
with open('measles.txt', 'r', encoding='utf-8') as in_file, open('filtered_results.txt', 'w', encoding='utf-8') as out_file:
    # 先写入表头(如果你的文件有表头的话)
    header = in_file.readline()
    out_file.write(header)
    
    # 遍历每一行数据
    for line in in_file:
        # 按逗号分割字段,这里假设Year是第2个字段(索引为1),你可以根据实际格式调整
        line_parts = line.strip().split(',')
        # 确保行格式正确,避免索引错误
        if len(line_parts) >= 2:
            # 把Year字段转成字符串(如果原本是数字的话)
            year_field = line_parts[1].strip()
            # 判断用户输入的年份是否是Year字段的子串
            if user_year in year_field:
                out_file.write(line + '\n')

print("筛选完成!结果已保存到filtered_results.txt")

关键细节说明

  • 字符串匹配:用user_year in year_field这个操作,直接判断用户输入的内容是否是Year字段字符串的一部分,完美支持任意长度的不完整年份输入。
  • 格式适配:如果你的measles.txt不是CSV格式(比如用空格、制表符分隔),只需要把split(',')改成对应的分隔符即可,比如split('\t')(制表符)或者split()(任意空格)。
  • 编码问题:加上encoding='utf-8'可以避免中文或特殊字符的乱码问题,根据你的实际文件编码调整就行。

这样修改后,用户输入"19"就能匹配所有19xx年的行,输入"87"就能匹配所有xx87年的行,完全满足你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:15:54