пытаясь использовать 2 столбца - PullRequest
0 голосов
/ 31 мая 2018

Таким образом, в основном цель этого кода - сообщить, какие порты в группе устройств используются.

Код выглядит следующим образом:

`$` file_name = input('Enter File Name: ') + str('.csv')
total_ports = 500

my_reader = csv.reader(open(file_name))
ctr = 0
for total_reserved in my_reader:
    if total_reserved[2] == 'Reserved':
        ctr += 1
print(ctr, 'out of ', total_ports, 'PLS ports are reserved')

my_reader = csv.reader(open(file_name))
ctr_pls0 = 0
for pls0 in my_reader:
    if pls0[0] == 'L1 switches/L1 Switch 10G PLS0.BLLAB/Blade01' and total_reserved[2]  == 'Reserved':
      ctr_pls0 += 1

print(ctr_pls0, 'of these', ctr, 'are pls0 ports') `$`

Это дает мне следующеевывод ...

Enter File Name: 31.05.2018
175 out of  500 PLS ports are reserved
0 of these 175 are pls0 ports

Process finished with exit code 0

0 of these 175 are pls0 ports Вот в чем проблема, эта строка должна предоставить мне количество портов, которые называются 'L1 switches/L1 Switch 10G PLS.BLLAB/Blade01' И, которые отображаются как 'Reserved' согласно CSV-файлу.

Есть идеи, что это может быть?

Спасибо!

1 Ответ

0 голосов
/ 31 мая 2018

Во втором цикле вы должны использовать pls0[2], а не total_reserved[2].total_reserved содержит последнюю строку файла из первого цикла.

Но нет никаких причин для двух циклов, просто увеличьте обе переменные в первом цикле.

with csv.reader(open(file_name)) as my_reader:
    ctr = 0
    ctr_pls0 = 0
    for total_reserved in my_reader:
        if total_reserved[2] == 'Reserved':
            ctr += 1
            if total_reserved[0] == 'L1 switches/L1 Switch 10G PLS0.BLLAB/Blade01'
                ctr_pls0 += 1
print(ctr, 'out of ', total_ports, 'PLS ports are reserved')
print(ctr_pls0, 'of these', ctr, 'are pls0 ports') `$`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...