Получение элементов из подсписка в Python - PullRequest
2 голосов
/ 05 января 2020

У меня есть файл .csv, который содержит следующие 4 строки элементов:

dev1, NX-OS, 10.0.0.1, admin, admin
dev2, NX-OS, 10.0.0.2, admin, admin
dev3, NX-OS, 10.0.0.3, admin, admin
dev4, NX-OS, 10.0.0.4, admin, admin

Я пытаюсь извлечь любой из элементов. Для этого у меня есть следующее:

import csv
dev_list=[]
infile=open('dev_in.csv','r')
csv_in=csv.reader(infile)

for dev in csv_in:
    dev_list.append(dev)

В результате из dev_list получается следующий список списков:

[
    ['dev1, NX-OS, 10.0.0.1, admin, admin'],
    ['dev2, NX-OS, 10.0.0.2, admin, admin'],
    ['dev3, NX-OS, 10.0.0.3, admin, admin'],
    ['dev4, NX-OS, 10.0.0.4, admin, admin']
]

Для извлечения первого элемент первого списка, который я кодировал:

element=dev_list[0]
print(element[0])

Тем не менее, я получаю полный первый список в результате:

dev1, NX-OS, 10.0.0.1, admin, admin

Возможно, я должен разделить его с помощью 'split 'функция, но я думаю, что это будет расширять код без необходимости. Что мне нужно для извлечения первых элементов каждого подсписка. Однако позже мне может понадобиться извлечь другие элементы.

Есть ли другой способ? Есть также лучший способ написать этот код, может быть, с пониманием списка Спасибо заранее.

1 Ответ

0 голосов
/ 05 января 2020

Подводя итог моему комментарию, вот что вам нужно сделать (имея в виду Python 3):

import csv
from pathlib import Path

dev_in = Path('dev_in.csv')

devs = list(csv.reader(dev_in.open(), skipinitialspace=True))

for dev in devs:
    # print dev names
    print(dev[0])

Код выше даст следующие строки в качестве вывода:

dev1
dev2
dev3
dev4

Вот подтверждение концепции:

Python 3.7.5 (default, Dec 15 2019, 17:54:26) 
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> from pathlib import Path
>>> dev_in = Path('dev_in.csv')
>>> 
>>> devs = list(csv.reader(dev_in.open(), skipinitialspace=True))
>>> devs
[['dev1', 'NX-OS', '10.0.0.1', 'admin', 'admin'], ['dev2', 'NX-OS', '10.0.0.2', 'admin', 'admin'], ['dev3', 'NX-OS', '10.0.0.3', 'admin', 'admin'], ['dev4', 'NX-OS', '10.0.0.4', 'admin', 'admin']]
>>> dev=devs[0]
>>> dev
['dev1', 'NX-OS', '10.0.0.1', 'admin', 'admin']
>>> dev[0]
'dev1'
>>>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...