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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

python中执行linux命令(调用linux命令)_Python调用Linux bash命令

發布時間:2023/11/27 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中执行linux命令(调用linux命令)_Python调用Linux bash命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

import subprocess as sup? # 以下注釋很多(為了自己以后不忘), 如果只是想在python中執行Linux命令, 看前5行就夠了

# 3.5版本之后官方推薦使用sup.run()

sup.run("ls -l", shell=True)? # 如果參數args是字符串, shell要設置為True

sup.run(("ls", "-l"))? # 推薦args為一個序列, list/tuple, 元組效率高

# 命令有返回值, 字符串類型(下同)

# sup.run(), call()等方法都是基于sup.Popen類的封裝, run()如果不夠用可以自己定義此類

pp = Popen(("ls", "-l"), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8")? # 不輸出到控制臺

p2 = subprocess.Popen(['grep', 'data'], stdin=pp.stdout, stdout=subprocess.PIPE)? # 可以將上一個命令的輸出作為下一個命令的輸入, 不需要|(管道符)

try:

pp.wait(timeout=1)? ?#? 等待1秒, 如果子進程沒結束會報錯(pp類是新開一個進程, 并在子進程中執行bash命令)

pp.kill()? # 命令執行結束殺死子進程

# 有些阻塞的命令不要設置超時時間更不要殺死, 比如: 命令行python, 但是這樣的命令不用的時候, 還是要殺掉子進程

except:

pass

print(pp.stdout.read())? # 輸出命令查詢結果

# 著重說一下?municate()? # 另一種輸出結果的方式, 還可以再傳入命令input參數, 也可以再設置超時時間timeout

out, err = municate()? # 如果是像python這樣的阻塞命令, 可以用input="print(1)", 再執行python代碼

print(out)? # 輸出bash命令結果, 字符串類型

總結

以上是生活随笔為你收集整理的python中执行linux命令(调用linux命令)_Python调用Linux bash命令的全部內容,希望文章能夠幫你解決所遇到的問題。

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

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:python中执行linux命令(调用linux命令)_Py