Есть ли способ сохранить вывод команды linux в переменную в сетевом программировании на python? - PullRequest
1 голос
/ 19 мая 2019

Я пытаюсь создать систему, в которой список доступных сетей Wi-Fi будет храниться для какой-то конкретной цели. Теперь проблема в том, что выполнение системной команды с помощью os.system () в переменной 'res' сохраняет только возвращаемое значение команды, которое на данный момент мне бесполезно.

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

import os
res = os.system('nmcli dev wifi')

Переменная res должна хранить в ней весь желаемый результат, а не возвращаемое значение. Даже если он сохранит результат, он сделает всю работу.

1 Ответ

0 голосов
/ 20 мая 2019

Вы можете сделать это, используя метод Popen из подпроцесса module

from subprocess import Popen, PIPE


#First argument is the program name.
arguments = ['ls', '-l', '-a']

#Run the program ls as subprocess.
process = Popen(arguments, stdout=PIPE, stderr=PIPE)

#Get the output or any errors. Be aware, they are going to be
#in bytes!!!
stdout, stderr = process.communicate()

#Print the output of the ls command.
print(bytes.decode(stdout))

...