Почему печать iwgetid дает мне 0?

#linux #types #raspberry-pi #integer #ssid

#linux #типы #raspberry-pi #целое число #ssid

Вопрос:

Я считываю Wi-Fi-соединение моего Raspberry Pi, используя iwgetid команду.

Вывод:

 wlan0     ESSID:"iPhone"
 

Я написал следующие строки в скрипте Python:

 import os
print(os.system("iwgetid"))
print(type(os.system("iwgetid")))
 

Результат, который я получил, был:

 0
<type 'int'>
 

Почему print(os.system("iwgetid") выдает мне 0 , когда это строка?

Ответ №1:

Как указано здесь:

os.system() просто запускает процесс, он не фиксирует выходные данные:

Если команда генерирует какой-либо вывод, он будет отправлен в стандартный выходной поток интерпретатора. Возвращаемое значение — это код завершения процесса:

В Unix возвращаемое значение представляет собой статус завершения процесса, закодированный в формате, указанном для wait() .

Чтобы получить вывод из команды терминала, используйте модуль подпроцесса и команду subprocess.check_output вместо os.system .