LINUX.ORG.RU

Передать значение переменной во внешнюю программу

 


0

1

Привет, ЛОР. Скорее всего вопрос нубовый, но тем не менее. Есть переменная А, значение которой строка. Как мне это значение передать во внешнюю прогу (например, wc)?

subrocess.run(["wc", A])

чот не работает. Ну я и сам вижу, что как-то не так выглядит (о чем мне и говорит вываливающаяся ошибка).

Ответ на: комментарий от eternal_sorrow

Я слегонца плохо описал ситуацию в стартовом посте.. Ситуация такая: через ссш парамико я выполняю команду на удаленном хосте и вывод stdout сохраняю в переменной json_out. Затем мне содержимое этой переменной надо подать на вход парсера джейсона. Пока что наколхозил вот такое решение, которое работает, но лишено красоты, кмк:

            stdin, stdout, stderr = jump_host.exec_command("curl -s http://127.0.0.1:8080/service@127.0.0.1/interfaces/1/exec_mgr")
            json_out = stdout.read()
            with open("output", "w") as f:
                context = json_out.decode()
                f.write(context)

            with open("output", "r") as f:
                print_result = subprocess.run("jq", stdin=f, check=True)

В уголках сознания бьётся мысль, что и без файла как то можно значение переменной json_out передать напрямую в subprocess

SpaceRanger ★★★
() автор топика
Последнее исправление: SpaceRanger (всего исправлений: 2)
Ответ на: комментарий от SpaceRanger

google://python+subprocess+pass+variable+as+stdin.

Стыдно должно быть, ни гуглить, ни доку читать не умеешь.

Затем мне содержимое этой переменной надо подать на вход парсера джейсона

Питон сам умеет обрабатывать жсон, зачем это делать через внешнюю программу?

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 2)
Ответ на: комментарий от theNamelessOne

Питон сам умеет обрабатывать жсон, зачем это делать через внешнюю программу?

Просто распарсенный джейсон такой большой, что улетает далеко за пределы консоли. Приходится его через лесс показывать. Если сделать скроббек безлимитным и через принт питона показывать, тогда только мышкой можно крутить, PgUP/PgDown в конце строки себя печтаают, а не скролят

SpaceRanger ★★★
() автор топика
Последнее исправление: SpaceRanger (всего исправлений: 1)