Вызов внешней команды с использованием цикла for или while - PullRequest
1 голос
/ 30 января 2020

Я новичок в Python языке программирования. Я пытаюсь вызвать внешнюю команду (VMAX Storage symcli cmd), используя Python l oop. Внешняя команда должна выполняться для каждого элемента в списке с вводом из списка. Как мне сделать эту работу?

import subprocess

SG = ["PC1","PC2","PC3","PC4"]

for i in SG:
    print(i)
    subprocess.run("symsg -sid 73 show SG[i]")

Ответы [ 2 ]

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

Спасибо людям за ценные отзывы. Я нашел решение. это работает с кодом ниже.

импорт подпроцесса

SG = ["PC1", "PC2", "PC3", "PC4"]

для i в SG: печать (i) подпроцесса. вызов ("symsg -sid 73 show" + SG)

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

Прошло некоторое время, так как я использовал подпроцесс. Вы можете проверить python документы здесь о том, как использовать подпроцесс. Похоже, вам нужно поместить аргументы в список и разделить их. Я запустил этот быстрый тест на windows, и он сработал.

from subprocess import run

test = run(['ipconfig', '--help'])
print(test)

РЕДАКТИРОВАТЬ

На основе приведенного ниже комментария об использовании фактической команды вопросов. Вот моя попытка. Я не смог проверить эту команду, чтобы убедиться, что она работает, так как у меня нет sysmsg.

from subprocess import run

test = run(['symsg', '-sid', '73','show', SG[i]])
print(test)
...