Python怎麼呼叫系統指令

PHPz
發布: 2023-05-22 23:19:10
轉載
2019 人瀏覽過

一、os.system方法

這個方法是直接呼叫標準C的system() 函數,僅在一個子終端機執行系統指令,而無法取得指令執行後的回傳資訊。

os.system(cmd)的回傳值。如果執行成功,那麼會回傳0,表示指令執行成功。否則,則是執行錯誤。

使用os.system傳回值是腳本的退出狀態碼,方法在調用完shell腳本後,傳回一個16位的二進位數,低位為殺死所呼叫腳本的訊號號碼,高位為腳本的退出狀態碼。

os.system()回傳值為0 linux指令回傳值也是0。

os.system()傳回值為256,十六位二進位數顯示為:00000001,00000000,高八位元轉成十進位為 1 對應 linux指令回傳值 1。

os.system()傳回值為512,十六位二進位數顯示為:00000010,00000000,高八位元轉成十進位為 2 對應 linux指令回傳值 2。

import os
result = os.system('cat /etc/passwd')
print(result)      # 0
登入後複製

二、os.popen方法

os.popen()方法不僅執行命令而且返回執行後的信息對象(常用於需要獲取執行命令後的返回信息),是透過一個管道文件將結果傳回。透過 os.popen() 返回的是 file read 的對象,對其進行讀取 read() 的操作可以看到執行的輸出。

import os
result = os.popen('cat /etc/passwd')
print(result.read())
登入後複製

三、commands模組

import commands
status = commands.getstatus('cat /etc/passwd')
print(status)
output = commands.getoutput('cat /etc/passwd')
print(output)
(status, output) = commands.getstatusoutput('cat /etc/passwd')
print(status, output)
登入後複製

四、subprocess模組

Subprocess是一個功能強大的子程序管理模組,是替換os.system,os.spawn* 等方法的一個模組。
當執行指令的參數或傳回中包含了中文文字,那麼建議使用subprocess。

import subprocess
res = subprocess.Popen('cat /etc/passwd', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) # 使用管道
print res.stdout.read()  # 标准输出
for line in res.stdout.readlines():
    print line
res.stdout.close()         # 关闭
登入後複製

以上是Python怎麼呼叫系統指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板