1. 程式人生 > >Python執行系統命令的方法 os.system(),os.popen(),commands

Python執行系統命令的方法 os.system(),os.popen(),commands

最近在做那個測試框架的時候發現 Python 的另一個獲得系統執行命令的返回值和輸出的類。

最開始的時候用 Python 學會了 os.system() 這個方法是很多比如 C,Perl 相似的。

os.system('cat /proc/cpuinfo')


但是這樣是無法獲得到輸出和返回值的,繼續 Google,之後學會了 os.popen()。

output = os.popen('cat /proc/cpuinfo')
print output.read()


通過 os.popen() 返回的是 file read 的物件,對其進行讀取 read() 的操作可以看到執行的輸出。但是怎麼讀取程式執行的返回值呢,當然咯繼續請教偉大的 Google(聯想到像我這樣的人工作如果離開了 Google,不是成了廢物。。。Baidu 忽視)。Google 給我指向了 
commands — Utilities for running commands

這樣通過 commands.getstatusoutput() 一個方法就可以獲得到返回值和輸出,非常好用。

(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status, output

Python Document 中給的一個例子,很清楚的給出了各方法的返回。

>>> import commands
>>> commands.getstatusoutput('ls /bin/ls'

)
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

相關推薦

使用Python執行系統命令方法有哪些?

Python學習 Python培訓 Python全棧 使用Python執行系統命令方法有哪些?  Python是一款操作簡單的編程語言,內置豐富的庫,能夠很容易的實現強大的功能,在使用Python進行框架搭建時,往往需要用到Python執行系統命令,一些開發人員對此不熟悉,以下是具體的操作方法: 

如何使用Python執行系統命令方法?老男孩IT教育

Python培訓 Python開發 Python學習 如何使用Python執行系統命令方法?老男孩IT教育   Python是一款操作簡單的編程語言,內置豐富的庫,能夠很容易的實現強大的功能,在使用Python進行框架搭建時,往往需要用到Python執行系統命令,一些開發

Python執行系統命令方法一覽

(1) os.system     這個方法是直接呼叫標準C的system() 函式,僅僅在一個子終端執行系統命令,而不能獲取命令執行後的返回資訊。  import os  os.system('cat /proc/cupinfo') (2) os.popen 

Python執行系統命令方法 os.system()os.popen()commands

最近在做那個測試框架的時候發現 Python 的另一個獲得系統執行命令的返回值和輸出的類。 最開始的時候用 Python 學會了 os.system() 這個方法是很多比如 C,Perl 相似的。 os.system('cat /proc/cpuinfo') 但是這

python執行系統命令方法os.system(), os.popen(), subprocess.Popen()

1、使用os.system("cmd") 這是最簡單的一種方法,其執行過程中會輸出顯示cmd命令執行的資訊。 例如:print os.system("mkdir test") >>>輸出:0 可以看到結果打印出0,表示命令執行成功;否則表示失敗(再次執行該

windows linux 使用python執行系統命令並將結果保存到變量

rtc 2008r2 digg 系統 ng- shc down post drive 最近需要用到os.system 發現不能賦值到變量 後查有更新的模塊,如下: os.system os.spawn* os.popen* popen2.* commands.* 重新使

python執行系統命令後獲取返回值

這就是 () err div log system clas pri 命令 import os, subprocess# os.system(‘dir‘) #執行系統命令,沒有獲取返回值,windows下中文亂碼# result = os.popen(‘dir‘)

python執行系統命令的四種方式

lib 信息 數值 成功 星期 控制 src 圖片 pos 一、os模塊 1. os.system(‘cmd‘) 在子終端運行系統命令,不能獲取命令執行後的返回信息以及執行返回的狀態 import os os.system(‘date‘) # 2016年 06月 30

python 執行shell命令的幾種方法os.systemos.popen、subprocess、commands

1、os.system 該函式返回命令執行結果的返回值,並不是返回命令的執行輸出, system()函式在執行過程中進行了以下三步操作: 1.fork一個子程序; 2.在子程序中呼叫exec函式去執行命令; 3.在父程序中呼叫wait(阻塞)去等待子程序結

python基礎之使用os.system執行系統命令

PS:dir(sys)可獲取sys所有介面 第二種方法是在linux命令列下鍵入:python,然後就會進入python,並顯示相關資訊,結果如圖: 看到了吧,上面顯示了:python版本:2.7.2 作業系統版本:red hat 4.1.2 當然你也可以在這裡面鍵入上述命令,如圖: 原文連結:   h

Python常用模組++OS(操作目錄執行系統命令)

import os os.system("ls") - - - 可用作簡單的系統終端(cmd,Terminal)命令執行 os.name - - - 可用作判斷當前系統環境 os.getcwd() - - - 可檢視當前工作目錄 os.environ - -

python 呼叫系統命令執行命令

python中呼叫系統命令的方法還是有比較多的,os/command/subprocess模組中都有方法可以做到 對比其他語言(樓主用過的語言也不多): PHP:exec(),system(), 整體感覺不好用, 阻塞很難受 jav

python中呼叫linux系統命令容易遇到的坑+(os.system,os.popen,subprocess.Popen區別)

本人在編寫監控系統程序狀態的指令碼的時候,因為要涉及到呼叫系統命令檢視linux系統程序pid以及時間等,所以使用到了os.popen().read()來獲取返回值 然而呼叫命令發現無法獲取到任何返回值,而直接在shell中執行實際上是存在程序的 原因是os.popen(

python筆記16-執行cmd指令(os.systemos.popen

PE () ima 常用 字符串 ces 寫入內容 控制臺 close os.system 1.如果想在cmd執行python腳本,可以直接用如下指令 python [xx.py絕對路徑] 比如我寫了個hello.py的腳本,在腳本裏面寫入內容:print("hello

python模組commands執行系統命令

    上一篇中提到了執行系統命令的新利器os模組,其中有兩個方法可以用來執行系統命令一個是os.popen()一個是os.system(),還有兩種可以用來執行系統命令的方法一個是:python自帶的commands模組另一個是python的程序管理模組subproces

讓PHP以ROOT許可權執行系統命令方法&SUID,SGID,SBIT許可權的作用和設定

SUID:只對二進位制程式支援,只要擁有該程式的所有者擁有SUID的許可權,那麼其它使用者或者同組使用者擁有該程式的x許可權,就可以在程式執行過程中擁有所有者的許可權支援。 例如:(在root下操作) 有一檔案text的內容是hello world!,現在編寫一個讀出該檔案內容的程式 程式如下: 程式名為r

PHP執行系統命令的有幾個常用的函數

exe 自動 文件操作 nal 外部命令 中間 ring 打開 lcm PHP執行系統命令的有幾個常用的函數,如有:system函數、exec函數、popen函數,passthru,shell_exec函數他們都可以執行系統命令,不過前提時必須系統給了權限了哦。 syste

Esper調用Java代碼執行系統命令

java esper 系統 Esper語言是可以調用高級語言的靜態方法的:以調用Java的靜態方法執行系統命令為例:select Runtime.getRuntime().exec(\"calc\"),avg(price) from " + product + ".win:length_batch

vbs執行系統命令

head 曾經 arch 指針變量 ras hal 通過 文件路徑 win 首先說明一下,我的所有代碼都是vbscript,jscript我沒有研究過,不過我想也差不多。關於最基礎的語法比如變量的申明,分支,循環,函數的調用,等等這些我就不講了,不懂得自己看一下。1、我們的

python執行scp命令拷貝檔案及資料夾到遠端主機的目錄

系統環境centos7 python2.7 先在作業系統安裝expect [[email protected] python]# vi 3s.py #!/usr/bin/python #coding:utf-8 import sys,re import os import