Как сделать один список из результатов цикла for - PullRequest
0 голосов
/ 10 октября 2018

У меня есть этот скрипт

for row in c:
    res = subprocess.Popen('bgpq3 -4 {} -m 24 -l {}'.format(row[5],row[2]), shell=True, universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    stdout, stderr = res.communicate()

    lines = []
    for line in stdout.split('\n')[1:10]:
        lines.append(line)
        print(lines)

Что приводит к:

   ['ip prefix-list 12414 permit 5.57.248.0/21']
   ['ip prefix-list 12414 permit 5.57.248.0/21', 'ip prefix-list 12414 permit 5.199.144.0/20']
   ['ip prefix-list 12414 permit 5.57.248.0/21', 'ip prefix-list 12414 permit 5.199.144.0/20', 'ip prefix-list 12414 permit 5.206.208.0/20']

Я использую метод добавления, чтобы создать один большой список, но получаю много списков!Есть идеи?

1 Ответ

0 голосов
/ 10 октября 2018

Как видите, правильный список - последний напечатанный список.это потому, что вы поместили вашу print функцию в ваш цикл и распечатали текущий список на всех итерациях, поэтому удалите отпечаток из тела for и выведите его из цикла.

for line in stdout.split('\n')[1:10]:
    lines.append(line)
print(lines)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...