Python中subprocess模塊用法實(shí)例詳解
本文實(shí)例講述了Python中subprocess模塊用法。分享給大家供大家參考。具體如下:
執(zhí)行命令:
>>> subprocess.call(["ls", "-l"])
0
>>> subprocess.call("exit 1", shell=True)
1
測試調(diào)用系統(tǒng)中cmd命令,顯示命令執(zhí)行的結(jié)果:
x=subprocess.check_output(["echo", "Hello World!"],shell=True) print(x) "Hello World!"
測試在python中顯示文件內(nèi)容:
y=subprocess.check_output(["type", "app2.cpp"],shell=True) print(y) #include <iostream> using namespace std; ......
查看ipconfig -all命令的輸出,并將將輸出保存到文件tmp.log中:
handle = open(r'd:\tmp.log','wt') subprocess.Popen(['ipconfig','-all'], stdout=handle)
查看網(wǎng)絡(luò)設(shè)置ipconfig -all,保存到變量中:
output = subprocess.Popen(['ipconfig','-all'], stdout=subprocess.PIPE,shell=True)
oc=output.communicate()#取出output中的字符串
#communicate() returns a tuple (stdoutdata, stderrdata).
print(oc[0]) #打印網(wǎng)絡(luò)信息
Windows IP Configuration
Host Name . . . . .
我們可以在Popen()建立子進(jìn)程的時(shí)候改變標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤,并可以利用subprocess.PIPE將多個(gè)子進(jìn)程的輸入和輸出連接在一起,構(gòu)成管道(pipe):
child1 = subprocess.Popen(["dir","/w"], stdout=subprocess.PIPE,shell=True)
child2 = subprocess.Popen(["wc"], stdin=child1.stdout,stdout=subprocess.PIPE,shell=True)
out = child2.communicate()
print(out)
(' 9 24 298\n', None)
如果想頻繁地和子線程通信,那么不能使用communicate();因?yàn)閏ommunicate通信一次之后即關(guān)閉了管道.這時(shí)可以試試下面的方法:
p= subprocess.Popen(["wc"], stdin=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
p.stdin.write('your command')
p.stdin.flush()
#......do something
try:
#......do something
p.stdout.readline()
#......do something
except:
print('IOError')
#......do something more
p.stdin.write('your other command')
p.stdin.flush()
#......do something more
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python面向?qū)ο蟪绦蛟O(shè)計(jì)之類的定義與繼承簡單示例
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之類的定義與繼承,結(jié)合完整實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的定義、調(diào)用、繼承及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-03-03
python 定時(shí)修改數(shù)據(jù)庫的示例代碼
這篇文章主要介紹了python 定時(shí)修改數(shù)據(jù)庫的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
Python基礎(chǔ)之變量基本用法與進(jìn)階詳解
這篇文章主要介紹了Python基礎(chǔ)之變量基本用法與進(jìn)階,結(jié)合實(shí)例形式詳細(xì)分析了Python變量引用、可變和不可變類型、局部變量和全局變量等相關(guān)原理與使用技巧,需要的朋友可以參考下2020-01-01
matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小
在撰寫論文時(shí)常常會(huì)用到matplotlib來繪制三維散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Python標(biāo)準(zhǔn)庫中的sys你了解嗎
這篇文章主要為大家詳細(xì)介紹了Python標(biāo)準(zhǔn)庫中的sys,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
Python中隨機(jī)數(shù)生成random庫實(shí)戰(zhàn)
本文介紹了Python的random庫,介紹了生成隨機(jī)整數(shù)、浮點(diǎn)數(shù)、序列隨機(jī)抽樣等基本功能,以及設(shè)置隨機(jī)種子、控制概率分布等高級(jí)技巧,通過多個(gè)實(shí)用示例,感興趣的可以了解一下2024-11-11
使用Python構(gòu)造hive insert語句說明
這篇文章主要介紹了使用Python構(gòu)造hive insert語句說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python解決多進(jìn)程間訪問效率低的方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了當(dāng)Python多進(jìn)程間訪問效率低時(shí),應(yīng)該如何解決?文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-09-09
Python3 翻轉(zhuǎn)二叉樹的實(shí)現(xiàn)
這篇文章主要介紹了Python3 翻轉(zhuǎn)二叉樹的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

