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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python显示外部命令_Python 执行外部指令

發布時間:2025/5/22 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python显示外部命令_Python 执行外部指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、os.system()

阻塞

屏幕會打印命令的輸出

返回命令結果碼

# -*- encoding=utf-8 -*-

import os

if __name__ == '__main__':

pass

print('開始')

ret1 = os.system('python')

print('ret1:{}'.format(ret1))

ret2 = os.system('java -version')

print('ret2:{}'.format(ret2))

print('結束')

運行

可能有人理解阻塞是因為運行了python,因此我嘗試兩個命令都用java -version

# -*- encoding=utf-8 -*-

import os

if __name__ == '__main__':

pass

print('開始')

ret1 = os.system('java -version')

print('ret1:{}'.format(ret1))

ret2 = os.system('java -version')

print('ret2:{}'.format(ret2))

print('結束')

運行

2、os.popen()

阻塞或不阻塞

屏幕不會打印出命令的輸出

返回文件對象,可用read,readline讀取

不阻塞時:

# -*- encoding=utf-8 -*-

import os

if __name__ == '__main__':

pass

print('開始')

os.popen('python')

ret2 = os.popen('java -version')

print('結束')

運行(程序很快打印開始和結束,就像只用了兩個print語句一樣快)

阻塞時:

# -*- encoding=utf-8 -*-

import os

if __name__ == '__main__':

pass

print('開始')

ret1 = os.popen('python')

print(ret1.read())

ret2 = os.popen('java -version')

print(ret2.read())

print('結束')

運行

3、commands.getstatusoutput

python2.+中使用

需要到linux運行

阻塞或者非阻塞

屏幕不會打印出命令的輸出

非阻塞時

# -*- encoding=utf-8 -*-

import commands

if __name__ == '__main__':

pass

print('開始')

ret1 = commands.getstatusoutput('python')

ret2 = commands.getstatusoutput('java -version')

print('結束')

運行

阻塞時:

#-*- encoding=utf-8 -*-

importcommandsif __name__ == '__main__':pass

print('開始')

ret1= commands.getstatusoutput('python')printret1[0]print ret1[1]print '=============='ret2= commands.getstatusoutput('java -version')printret2[0]print ret2[1]print '=============='

print('結束')

運行

4、subprocess 中Popen

阻塞或非阻塞,同上面一樣,通過是否讀取IO決定是否阻塞

屏幕會打印出命令的輸出

可通過stdout,stderr參數指定輸出或錯誤打印到文件

# -*- encoding=utf-8 -*-

import subprocess

if __name__ == '__main__':

pass

print('開始')

s1 = subprocess.Popen('python')

s1.wait()

s2 = subprocess.Popen('java -version')

s2.wait()

print('結束')

運行

4.1、 輸出到文件

通過文件對象來輸出到文件中

#-*- encoding=utf-8 -*-

importsubprocessif __name__ == '__main__':pass

print('開始')

with open('s1.txt', 'w') as f:

s1= subprocess.Popen('python', stdout=f, ) #指定輸出重定向到文件

s1.wait(10) #超過10秒還沒執行完會拋出異常

with open('s2.txt', 'w') as f:

s2= subprocess.Popen('java -version', stdout=f, stderr=f) #指定輸出和錯誤都重定向到文件

s2.wait()print('結束')

運行后可看到文件已經寫入,屏幕不打印。需要注意是stdout還是stderr。

4.2、捕獲輸出和錯誤

PIPE通過開一個新的管道來接收運行狀態

# -*- encoding=utf-8 -*-

import subprocess

if __name__ == '__main__':

pass

print('開始')

s1 = subprocess.Popen('java -version', stdout=subprocess.PIPE, stderr=subprocess.PIPE)

s1.wait(10) # 超過10秒還沒執行完會拋出異常

print(s1.returncode) # 結果碼

print(s1.poll()) # 已經執行結束返回結果碼,否則返回None

std1 = s1.stdout.read()

print('std_out:{}'.format(std1))

std2 = s1.stderr.read()

print('std_err:{}'.format(std2))

print('結束')

運行

5、subprocess.call

用來替代os.system

阻塞

#-*- encoding=utf-8 -*-

importsubprocessif __name__ == '__main__':pass

print('開始')

s1= subprocess.call('java -version', )print(s1)

s2= subprocess.call('python', )print(s2)

s3= subprocess.call('python', timeout=3) #超時拋出異常

print(s3)print('結束')

6、check_call()和check_output()

都會檢查結果碼,不是0就拋出異常

check_call()返回狀態碼

check_output()返回輸出

#-*- encoding=utf-8 -*-

importsubprocessif __name__ == '__main__':pass

print('開始')

s1= subprocess.check_call('java -version', )print(s1)

s2= subprocess.check_output('java -version', )print(s2)print('結束')

運行

使用上面提到的三個方法:call()、check_call() 和 check_output() 時,盡量不要將參數 stderr 和stdout 設置為 subprocess.PIPE,這幾個函數默認都會等待子進程完成,子進程產生大量的輸出數據如果造成管道堵塞,父進程再等待子進程完成可能造成死鎖。

參考鏈接:

總結

以上是生活随笔為你收集整理的python显示外部命令_Python 执行外部指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 毛片a | 91极品美女 | 国产中文字幕精品 | 天天爽夜夜爽夜夜爽精品 | 国产艳情片 | 国产日本欧美一区二区 | 国产调教在线观看 | 亚洲av高清一区二区三区 | www.四虎在线| 草1024榴社区成人 | 久久精品国产一区 | 免费激情网 | 亚洲免费观看 | 青青青国产精品一区二区 | 国产男女猛烈无遮挡免费视频 | 青青青国产精品一区二区 | 一色av| 亚洲黄色成人 | 91调教视频| 色视频免费在线观看 | www成人免费视频 | 91爱爱com| 亚洲精品男人天堂 | 国产欧美一区二区在线观看 | 免费看一区二区三区 | 粉嫩av| 人人曰 | 国产情趣视频 | 亚洲午夜小视频 | 午夜视频一区 | 精品丝袜一区 | 国产国语老龄妇女a片 | 日本三级视频 | 视频1区2区| 深爱激情综合 | 情欲超 | 狠狠爱夜夜爱 | 美女bb视频 | 你懂的在线免费观看 | 国产亚洲欧美一区二区三区 | 国产成人在线免费观看 | 日本做爰高潮又黄又爽 | 日本一区二区三区网站 | 91高清视频 | 中文字幕日韩三级片 | 欧美色成人 | 亚洲在线观看视频 | 国产白嫩美女无套久久 | av黄色片 | 亚洲第一视频在线观看 | 久久久久久久久亚洲 | 国产又粗又长又黄视频 | 国产激情四射 | www.成人.com| 国精产品一品二品国精品69xx | 密桃av在线 | 国产精品麻豆视频 | 夜夜久久久 | 91性| 免费看大片a | 久久久一本 | 妖精视频在线观看 | 高清一区二区视频 | 91一起草| 91sex国产| 日本久久一区 | 91tv在线观看| 国产精品99久久久久久www | 九九热伊人 | 亚洲乱淫 | 国产综合第一页 | 欧美性videos高清精品 | 男生操男生网站 | 天天看片天天爽 | 久久96| 波多野一区二区 | 久久久久久久久久久久久久 | 波多野结衣av一区二区全免费观看 | 在线播放网址 | 色网站在线播放 | 日韩不卡视频在线 | 私人毛片| 欧美一级片在线免费观看 | 亚洲精品国产精品乱码在线观看 | 亚洲欧美自偷自拍 | 一区二区三区四区日韩 | 91久久国产视频 | 欧美xxxxxxxxx| 亚洲无线看 | www三级免费 | 激情小视频 | 日韩人妻精品中文字幕 | 91精品国产一区二区无码 | 色噜噜综合网 | 99xav| 欧美日韩国产一级片 | 色播放| 日韩精品一区二区不卡 | 草草影院第一页yycc.com |