Python добавляет строку с if / else? - PullRequest
0 голосов
/ 17 февраля 2019

Я хочу создать список строки результата на основе результата if - else, но в настоящее время при запуске цикла можно увидеть только строку с 1 значением.

Пример:

for ips in npat:
    ipnet = ips.strip()
    print ("Processing ..... ", ipnet)
    fgen = "grep " +ipnet+ " /mnt/hgfs/IRR/fgen.txt"
    f2pat = re.findall(ipnet,fgen)
    print ("\nCommand: ",fgen)
    os.system(fgen)
    print ("\n NEW NPATH: ",f2pat)

    flist = []
    if ipnet in f2pat:
        flist.append("Grep Found")
        print ("Result ", flist)
    else:
        flist.append("Grep NotFound")
        print ("Result: ",flist)

flist -> ['Grep Found'] ... В списке есть только 1 значение, хотя должно быть несколько значений.Могу ли я узнать ваши идеи?

Спасибо.

1 Ответ

0 голосов
/ 17 февраля 2019

кажется, что flist = [] перезапускается в цикле.Переместите эту переменную в одиночку выше вашего for loop.Следовательно код становится:

flist = []
for ips in npat:
    ipnet = ips.strip()
    print ("Processing ..... ", ipnet)
    fgen = "grep " +ipnet+ " /mnt/hgfs/IRR/fgen.txt"
    f2pat = re.findall(ipnet,fgen)
    print ("\nCommand: ",fgen)
    os.system(fgen)
    print ("\n NEW NPATH: ",f2pat)


    if ipnet in f2pat:
        flist.append("Grep Found")
        print ("Result ", flist)
    else:
        flist.append("Grep NotFound")
        print ("Result: ",flist)

Кредиты для джедвардсов комментарий

...