You need to enable JavaScript to run this app. Python处理文本文件给第四列加200并追加时报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python处理文本文件给第四列加200并追加时报错如何解决

报错原因

  1. input.txt中包含>非数值字符,np.loadtxt默认尝试将所有内容转换为浮点型,遇到无法转换的>就会抛出对应错误
  2. 代码中data(:,3)语法错误,numpy数组索引用方括号,正确写法为data[:, 3]

解决方案

直接逐行读写处理即可完美保留原文件格式,代码如下:

with open('input.txt', 'r', encoding='utf-8') as f_in, open('out.txt', 'w', encoding='utf-8') as f_out:
    for line in f_in:
        raw_line = line.rstrip('\n')
        # 包含>的行直接原样写入输出文件
        if '>' in raw_line:
            f_out.write(raw_line + '\n')
            continue
        # 拆分数据列
        cols = raw_line.split()
        if len(cols) >= 4:
            # 第四列数值加200后追加到行末
            col4 = float(cols[3])
            new_val = col4 + 200
            # 可根据需要调整new_val的格式化宽度匹配原文件对齐
            new_line = f"{raw_line} {new_val}\n"
            f_out.write(new_line)

如果需要严格对齐原文件的列间距,可以调整new_val的格式化规则,比如改为f"{new_val:<20g}"适配固定宽度输出。

可选Numpy实现说明

如果一定要用numpy实现,可通过np.loadtxt('input.txt', comments='>')跳过所有带>的行,但该方法会丢失原文件中>行的位置信息,需要额外记录才能还原原文件结构,复杂度远高于逐行处理,更推荐使用上面的逐行处理方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 19:48:03