日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Python执行系统命令的四种方法

發(fā)布時(shí)間:2025/3/20 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python执行系统命令的四种方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、os.system方法
在子終端運(yùn)行系統(tǒng)命令,可以獲取命令執(zhí)行后的返回信息以及執(zhí)行返回的狀態(tài)。執(zhí)行后返回兩行結(jié)果,第一行是結(jié)果, 第二行是執(zhí)行狀態(tài)信息,如果命令成功執(zhí)行,這條語句返回0,否則返回1。

import os print(os.system('date'))


由于python3默認(rèn)采用了UTF-8編碼,而WIN8的CMD窗口采用的是GBK編碼,導(dǎo)致了編碼不同。

但是,如果簡單的通過encode(‘gbk’)之類的方法,不能解決根本問題。

尤其是當(dāng)我們根本不是使用print命令來輸出,而是控制臺(tái)默認(rèn)輸出的情況下,是沒辦法修改os.system的編碼格式的,因?yàn)閛s.system執(zhí)行命令返回的并不是命令中出現(xiàn)的文本,而是一個(gè)int,為0時(shí)表示成功,為1時(shí)表示異常。

Pycharm下的解決方法:


二、os.popen方法

os.popen()方法不僅執(zhí)行命令而且返回執(zhí)行后的信息對象(常用于需要獲取執(zhí)行命令后的返回信息),是通過一個(gè)管道文件將結(jié)果返回。

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' import os os.popen()



三、commands模塊

–說明
getoutput獲取執(zhí)行命令后的返回信息
getstatus獲取執(zhí)行命令的狀態(tài)值(執(zhí)行命令成功返回?cái)?shù)值0,否則返回非0)
getstatusoutput獲取執(zhí)行命令的狀態(tài)值以及返回信息


注意1:在類unix的系統(tǒng)下使用此方法返回的返回值(status)與腳本或命令執(zhí)行之后的返回值不等,這是因?yàn)檎{(diào)用了os.wait()的緣故,具體原因就得去了解下系統(tǒng)wait()的實(shí)現(xiàn)了。需要正確的返回值(status),只需要對返回值進(jìn)行右移8位操作就可以了。

注意2:當(dāng)執(zhí)行命令的參數(shù)或者返回中包含了中文文字,那么建議使用subprocess。

四、subprocess模塊

subprocess模塊運(yùn)用對線程的控制和監(jiān)控,將返回的結(jié)果賦于一變量,便于程序的處理。

subprocess模塊是python從2.4版本開始引入的模塊。主要用來取代 一些舊的模塊方法,如os.system、os.spawn*、os.popen*、commands.*等。subprocess通過子進(jìn)程來執(zhí)行外部指令,并通過input/output/error管道,獲取子進(jìn)程的執(zhí)行的返回信息。

總結(jié)

以上是生活随笔為你收集整理的Python执行系统命令的四种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。