Python
python + 如何列印來自 os.system 的值
為什麼這個簡單的 python 腳本不列印真正的 redhat 版本?
version = os.system( ' cat /etc/redhat-release | awk \'{print $7}\' ' ) print ("my version is " ,version)
當我執行它時
我們有:
7.2 ('my version is ', 0)
- 為什麼我們得到 0 而不是 7.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'