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

Python如何从文件读取数据部分填充固定大小数组并忽略空占位

代码修改方案

问题根源是你提前初始化了长度为10的全空字符串数组,未被赋值的位置会保留初始的空字符串占位。修改时只需调整数组初始化逻辑和赋值方式即可:

MAX_COLORS = 10
# 初始化为空列表,不提前填充占位符
colors = []
filename = input("输入颜色文件名称(primary.dat 或 secondary.dat): ")
# 用with上下文管理器打开文件,无需手动close,更安全
with open(filename, 'r') as infile:
    line = infile.readline()
    # 只要读取的行不为空,且已存数据量没到上限就继续处理
    while line != '' and len(colors) < MAX_COLORS:
        colors.append(str.rstrip(line))
        line = infile.readline()

修改点说明

  • 移除了初始的固定长度空数组初始化逻辑,改为空列表动态添加数据,最终列表长度等于实际读取到的有效数据行数,不会出现多余的空字符串占位
  • 替换索引赋值为append()方法新增元素,无需额外维护counter计数器,直接通过len(colors)判断是否达到容量上限
  • 新增with上下文管理器管理文件句柄,避免代码异常时忘记关闭文件导致的资源泄漏问题

如果你有必须保留固定长度数组定义的特殊要求,仅想过滤掉空字符串占位,可以在原有代码读取完成后加一行过滤代码:

colors = [c for c in colors if c != '']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:24:03