Функция os.system()
возвращает код завершения оболочки, а не выходные данные команды оболочки, которая выполнила работу.Чтобы захватить этот вывод, вам нужно открыть канал и прочитать из него.Способ сделать это в модуле os
- использовать os.popen()
вместо os.system()
os.popen("""lscpu | grep 'CPU(s):' | head -1 | awk '{print $2}'""").read()
Другой способ - использовать более новый модуль subprocess
.Поскольку os.popen()
устарела начиная с версии 2.6, вы можете предпочесть subprocess
, особенно если вы ожидаете, что ваш код выдержит следующую пару ревизий Python.
subprocess.getoutput(""""lscpu | grep 'CPU(s):' | head -1 | awk '{print $2}'""")
Примечание: Мои тройные кавычки здесь могут быть не нужны, но мне нравится помещать их в такие вызовы, просто для того, чтобы они не мешали заключать в кавычки какие-либо команды оболочки.
Удачи!