Python

python + 如何列印來自 os.system 的值

  • February 17, 2021

為什麼這個簡單的 python 腳本不列印真正的 redhat 版本?

version = os.system( ' cat /etc/redhat-release  | awk \'{print $7}\' '  )
print ("my version is " ,version)

當我執行它時

我們有:

7.2
('my version is ', 0)
  1. 為什麼我們得到 0 而不是 7.2?
  2. 如何避免從 os.system 獲取 7.2 版?

os.system()只是執行程序,它不會擷取輸出:

如果命令生成任何輸出,它將被發送到解釋器標準輸出流。

返回值是程序的退出程式碼:

在 Unix 上,返回值是以 wait() 指定的格式編碼的程序的退出狀態。

您需要使用類似subprocess.check_output()subprocess.Popen()直接的方法來擷取輸出。

>>> arch = subprocess.check_output("uname -a | awk '{print $9}'", shell=True);
>>> arch
'x86_64\n'

引用自:https://unix.stackexchange.com/questions/418616