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

将TXT文件导入Python为array时两位数被拆分的问题求助

解决Python导入文件转数组时两位数被拆分的问题

嘿,这问题我之前也碰到过!核心原因大概率是你读取文件时把内容当成单个字符来处理了,而不是把连续的数字当成一个完整的数值。我来给你拆解下问题和解决方案:

常见错误场景(假设你的代码类似这样)

比如你可能写了类似下面的代码,直接把读取到的字符串转成列表,这样每个字符(包括数字的每一位)都会被拆成单独元素:

with open('your_file.txt', 'r') as f:
    content = f.read()
arr = list(content)
# 结果会是比如 ['1','2',' ','3','4'] 而不是 [12,34]

针对不同文件格式的解决方案

情况1:文件里的数字用空格/逗号/制表符分隔

比如你的文件内容是这样的:

12 34 56
78 90

可以用两种方式处理:

  • 用Numpy快速处理(推荐):Numpy的加载函数会自动识别完整数值:
    import numpy as np
    # 默认空格分隔,若用逗号就加 delimiter=','
    arr = np.loadtxt('your_file.txt')
    # 如果要整数数组,指定 dtype=int
    arr = np.loadtxt('your_file.txt', dtype=int)
    
  • 纯Python手动处理:
    with open('your_file.txt', 'r') as f:
        # 读取所有内容,按空白分割成数值字符串,再转成整数/浮点数
        num_strings = f.read().split()
        arr = [int(num) for num in num_strings]
        # 浮点数就改成 float(num)
    

情况2:文件里每行一个数字

比如文件内容是:

12
34
56

处理代码可以这样写:

with open('your_file.txt', 'r') as f:
    # 逐行读取,跳过空行,转成数值
    arr = [int(line.strip()) for line in f if line.strip()]

小提示

  • 检查文件里有没有多余的特殊字符(比如换行符、空格以外的分隔符),如果有,要在分割时指定对应的分隔符(比如split(','))
  • 如果是CSV格式文件,也可以用Python内置的csv模块来读取,更稳妥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:15:40