python 執行shell_python執行shell命令的方法

python執行shell命令的方法

os模塊

os.system方式:

import os

os.system('top')

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

說明

這個調用相當直接,且是同步進行的,程序需要阻塞并等待返回。

返回值是依賴于系統的,直接返回系統的調用返回值,所以windows和linux是不一樣的。

強調的一點是,不支持參數,不支持管道

os.open方式:

import os

output = os.popen('df')

print output.read() #如果命令自身無報錯,則返回正確的值

說明

popen方法通過p.read()獲取終端輸出,而且popen需要關閉close().

當執行成功時,close()不返回任何值,失敗時,close()返回系統返回值..

可見它獲取返回值的方式和os.system不同

強調的一點是,不支持參數,不支持管道

commands模塊

使用commands模塊的getoutput方法,這種方法同popend的區別在于popen返回的是一個文件句柄,而本方法將外部程序的輸出結果當作字符串返回,很多情況下用起來要更方便些。

主要方法:

commands.getstatusoutput(cmd) 返回(status, output)

commands.getoutput(cmd) 只返回輸出結果

commands.getstatus(file) 返回ls -ld file的執行結果字符串,調用了getoutput,不建議使用此方法

a = commands.getoutput('ps -ef ')

b = commands.getstatusoutput('vmstat')

subprocess模塊

說明

使用subprocess模塊能夠創建新的進程。

能夠與新建進程的輸入/輸出/錯誤管道連通。

并能夠獲得新建進程運行的返回狀態。

使用subprocess模塊的目的是替代os.system()、os.popen()、commands.等舊的函數或模塊。

subprocess.call(["some_command","some_argument","another_argument_or_path")

from subprocess import call

call(['ls','-l','/boot','/sys']) #

call('ls -a /',shell=True)

subprocess.Popen(command,shell=True)

subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)

參考博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533810.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux下c語言讀取roed文件,如何在Linux系統上安裝Android4.4.docx

Android (x86)項目致力于移植 Android系統到X86處理器上,使用戶可以更容易的在任何電腦上安裝Android。他們通過使用android源碼,增加補丁來使 Android能夠在X86處理器,筆記本電腦和平板 電腦下工作。前一段時間,項目組發布了最新…

微信小程序setinterval_簡單談談setTimeout與setInterval

感謝踩過的坑sf社區的第一篇文章。最近在做一個拍賣的微信小程序,用到了定時器setTimout和setInterval,簡單談談這兩個api。setTimeout最常見的用法就是第二種(第三種mdn文檔不推薦),如:var timeoutId setTimeout(function() {console.log(hello world!…

python 注釋一段話_Python快速入門(一)

引言Python作為一個,目前最火的編程語言之一,已經滲透到了各行各業。它易學好懂,擁有著豐富的庫,功能齊全。人生苦短,就用Python。這個快速入門系列分為六篇,包含了Python大部分基礎知識,每篇閱…

linux ibus獲取窗體位置,Ubuntu 12.04 顯示ibus 的輸入框

在虛擬機中安裝了Ubuntu 12.04,系統是英文版本的,我能接受,但是苦于沒有中文輸入法。起先,我是安裝SCIM,結果我折騰了半天,發現其只能在lib-office下使用。firefox,文字編輯器中都不能調出SCIM。無奈將其卸…

transporter上傳卡正在交付_【iOS】Xcode11使用Transporter將APP上傳到App Store,卡在正在驗證APP...

問題:在使用Transporter時,會卡主,一直顯示正在驗證APP在這里插入圖片描述解決方案一:利用V-P-N在這里插入圖片描述使用安全上網(V-P-N),雙擊打開iTMSTransporter,等待幾分鐘lichuangMacBook-Pro-3 ~ % /Ap…

python練手經典100例微盤_20個Python練手經典案例,能全做對的人確實很少!

100個Python練手小程序,學習python的很好的資料,覆蓋了python中的每一部分,可以邊學習邊練習,更容易掌握python。 如果你感覺學不會?莫慌,小編推薦大家加入群, 前面548中間377后面875&#xff0…

小紅帽linux各功能中英,英文短劇《小紅帽》劇本臺詞完整版---中英對照文本版...

大灰狼和小紅帽的故事紅帽第一場:小紅帽家 媽媽: (媽媽拿著一個籃子,把桌子上的水果放在籃子里) 小紅帽唱著歌,歡快地跑進來)Hi,mummy, what are you doing? 嘿,媽媽 你在什么? 媽媽: (一邊把水…

uipath循環datatable_UiPath之DataTable轉換為List和Array

今天給大家分享一下,如何將DataTable轉為List和Array,為此小U也花了不少時間研究,最后發現沒有那么復雜。先來說說List和Array的區別:List:就像一個鏈條,存儲數據的空間可以不連續。Array:就像一…

python批量下載文件教程_Python抓包菜鳥教程:批量下載圖片的方法,電腦和手機都能用...

筆者看上了一組圖集,然后準備一張一張下載時,瞄了一眼,這組圖集還有100,好吧,我酸了。 筆者就是試試工具,你們別像我這樣用,這么好的工具,做自媒體,那絕對了那如何批量下…

esxi掛載Linux的nfs盤,ESXi安裝centos7掛載群暉NFS

前段時間折騰了ESXi,然后無盡的折騰接踵而來,今天要說的是如何安裝centos7并掛載群暉虛擬機的NFS共享文件夾直接步入正題!先是下載centos7鏡像,因為我是用來當服務器的,所以只需要minimal版即可【centos下載鏈接】自己…

python使用的編輯器_我用過的最好的python編輯器PyScripter

用了IDLE, PythonWin等幾個python編輯器,在代碼補全、參數提示等功能上都非常不滿意。 終于找到PyScripter并且試用了一下,代碼補全、參數提示等功能非常強大。這個功能其實非常重要,可以大大提高開發效率,減少出錯。很滿意.PyScr…

linux is not unix由來,一些奇怪的 unix 指令名字的由來(轉)

一些奇怪的 unix 指令名字的由來(轉)[more]一些奇怪的 unix 指令名字的由來awk "Aho Weinberger and Kernighan"這個語言以作者 Al Aho, Peter Weinberger 和 Brian Kernighan 的姓來命名。grep "Global Regular Expression Print"grep 來自 ed 的列印所…

python discuz_pythonDiscuz發帖器的實現

網絡技術需要大家共同分享,不能閉門造車,下面是bj-dnsCom提示:首先要清楚discuz論壇發帖的流程,簡單地說就是以下流程:進入登錄頁 ->登錄 -> 進入版面 ->發帖 首先要清楚discuz論壇發帖的流程,簡單地說就是以…

基于linux的業設計課題,基于linux下智能手機的設計與制作 畢業設計.doc

本科生畢業論文(設計)題 目: 基于linux下智能手機的設計與制作目錄1. 緒論11.1 嵌入式系統的應用前景11.2linux操作系統21.2.1Linux介紹22.硬件、軟件介紹32.1S3c2440知識32.1.1S3c2440系統結構介紹32.1.2arm實驗儀介紹72.2 GPRS無線模組92.2.1 GPRS概述及工作原理9…

excel文件導入hive亂碼_將excel中的數據導入hive

步驟一:將excel另存為txt文檔(文本文件(制表符分割))假設名字為CompanyCode.txt步驟二,將該txt文件導入Linux指定目錄中步驟三,轉換編碼格式,在指定目錄下執行如下命令:piconv -f gb2312 -t UTF-8 CompanyCode.txt &g…

傳統的6d位姿估計fangfa1_李飛飛團隊最新論文:基于anchor關鍵點的類別級物體6D位姿跟蹤...

點擊上方“3D視覺工坊”,選擇“星標”干貨第一時間送達簡介作者提出了一種基于RGB-D的深度學習方法6PACK,能夠實時的跟蹤已知類別物體。通過學習用少量的3D關鍵點來簡潔地表示一個物體,基于這些關鍵點,通過關鍵點匹配來估計物體在…

c語言的程序結構語序,第3章 C語序結構.doc

第3章 C語序結構第三章 基本語句本章要求:1.表達式語句,空語句,復合語句2.數據的輸入與輸出,輸入,輸出函數的調用C語句概述C程序的執行部分是由語句組成的。 程序的功能也是由執行語句實現的。3.1 賦值語句賦值語句: 是由賦值表達式再加上分號構成的表達…

安卓system鏡像分區_玩機愛好者想要的PT分區到底是什么?可以使現有的安卓系統更快!...

小編第一次看見PT分區這個詞。就比較好奇他到底是什么神仙技術。今天,小編給大家科普一下,可能小編理解的也不是特別準確,請各位諒解!! 歡迎關注小編。各位玩機愛好者總是沉浸在各種ROM包、第三發Rec,以及各…

計算器軟件C語言課程設計實驗報告,c簡單計算器實驗報告_相關文章專題_寫寫幫文庫...

時間:2019-05-15 12:55:15 作者:admin計算器實驗報告班級: 07計本(1)班姓名: 王林學號: 20706031047指導老師: 韓靜一、 需求分析(1)制作一個計算器界面工程,有數字運算符等鍵,輸入表…

python求和1到100_python等差數列求和公式前 100 項的和實例

python等差數列求和公式前 100 項的和實例 最近跑去學了下python,一個很簡單的題,結果發現數學公示忘了,在不用for循環的情況下居然有些懵,記錄為下.. 題:等差數列可以定義為每一項與它的前一項的差等于一個常數,可以用…