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

Python CSV统计问题:PLS0设备Reserved端口统计结果异常为0

问题分析:PLS0端口统计结果始终为0的原因及修复方案

我帮你排查了代码里的问题,主要有两个关键点导致统计结果异常:

1. 循环变量引用错误

在第二个统计PLS0端口的循环里,你错误地沿用了第一个循环的变量total_reserved[2]来判断端口状态,但此时total_reserved已经是第一个循环结束后最后一行的内容,和当前循环的pls0行完全不相关。正确的做法应该用当前循环的pls0[2]来判断状态。

2. 设备名称不匹配(潜在核心问题)

你的需求里要统计的设备名称是'L1 switches/L1 Switch 10G PLS.BLLAB/Blade01',但代码里写的是'L1 switches/L1 Switch 10G PLS0.BLLAB/Blade01'(多了一个0),如果CSV里的设备名称确实不带0,这会直接导致找不到匹配的行,统计结果自然为0。


修复后的优化代码

另外我还优化了代码逻辑,不需要两次打开和读取同一个CSV文件,一次循环就能完成两个统计任务,既高效又避免变量混淆:

import csv

file_name = input('Enter File Name: ') + '.csv'
total_ports = 500
total_reserved = 0
pls0_reserved = 0

# 用with语句自动管理文件资源,避免漏关文件
with open(file_name, 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        # 先判断端口是否为Reserved状态
        if row[2] == 'Reserved':
            total_reserved += 1
            # 同时判断是否是目标PLS0设备
            if row[0] == 'L1 switches/L1 Switch 10G PLS.BLLAB/Blade01':
                pls0_reserved += 1

print(total_reserved, 'out of ', total_ports, 'PLS ports are reserved')
print(pls0_reserved, 'of these', total_reserved, 'are pls0 ports')

优化说明

  • 使用with open()语句自动处理文件的打开与关闭,避免资源泄漏
  • 一次遍历CSV文件即可完成两个统计目标,提升运行效率
  • 用语义更清晰的变量名替代ctr、ctr_pls0,代码可读性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:46:10