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

如何检查文件每行最后一列是否含特定数字20并生成指定输出?

问题解决:检查每行最后一列是否为20并生成对应输出

问题背景

我有一个名为in.txt的文件,内容如下:

0000fb435  00000326fab123bc2a 20
00003b4c6  0020346afeff655423 26
0000cb341  be3652a156fffcabd5 26
.
.

需要实现的功能:检查文件中每行最后一列是否为数字20,并生成指定格式的输出文件out.txt。

预期输出

out.txt内容示例:

0020fb435  00000326fab123bc2a 20 twenty_number
00003b4c6  0020346afeff655423 26 none
0000cb341  be3652a120fffcabd5 26 none
.
.

当前尝试的代码

with open("in.txt", "r") as fin:
    with open("out.txt", "w") as fout:
        for line in fin:
           line = line.strip()
           if '20' in line:
               fout.write(line + f" twenty_number \n")

当前输出问题

运行上述代码后,out.txt的输出不符合预期:

0020fb435  00000326fab123bc2a 20 twenty_number
00003b4c6  0020346afeff655423 26 twenty_number
0000cb341  be3652a120fffcabd5 26 twenty_number
.
.

问题原因:当前代码检查的是整行是否包含"20",而非仅验证每行的最后一列。

解决方案

修改代码,拆分每行内容并提取最后一列进行判断,代码如下:

with open("in.txt", "r") as fin:
    with open("out.txt", "w") as fout:
        for line in fin:
            line = line.strip()
            if not line:  # 跳过空行
                continue
            # 按空格拆分每行内容,取最后一列
            parts = line.split()
            last_col = parts[-1]
            if last_col == '20':
                fout.write(f"{line} twenty_number\n")
            else:
                fout.write(f"{line} none\n")

代码说明

  • 用split()方法将每行按空格拆分为列表,通过parts[-1]获取最后一列内容
  • 直接判断最后一列是否等于字符串'20'(若需数字比较可转为int(last_col) == 20)
  • 无论是否匹配,都写入对应后缀,避免遗漏行
  • 增加空行判断,防止处理空行时出现索引错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:10:31