本篇文章給大家詳細講述了python中使用subprocess批量執行linux命令的方法,有興趣的朋友參考學習下。
可以執行shell指令的相關模組和函式有:
os.system
-
os.spawn
os.popen --廢棄
popen --廢棄
- ##commands --廢棄,3. x中被移除
subprocess
call
>>> import subprocess >>> ret = subprocess.call(["ls", "-l"], shell=False) total 4684 -rw-r--r-- 1 root root 454 May 5 12:20 aa.py -rw-r--r-- 1 root root 0 May 8 16:51 aa.txt -rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe -rw-r--r-- 1 root root 422 May 5 12:20 ip_info.txt -rw-r--r-- 1 root root 718 Apr 19 10:52 my.cnf >>> ret = subprocess.call("ls -l", shell=True) total 4684 -rw-r--r-- 1 root root 454 May 5 12:20 aa.py -rw-r--r-- 1 root root 0 May 8 16:51 aa.txt -rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe -rw-r--r-- 1 root root 422 May 5 12:20 ip_info.txt -rw-r--r-- 1 root root 718 Apr 19 10:52 my.cnf >>> print(ret) 0
check_call
#
>>> subprocess.check_call(["ls", "-l"]) total 4684 -rw-r--r-- 1 root root 454 May 5 12:20 aa.py -rw-r--r-- 1 root root 0 May 8 16:51 aa.txt -rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe -rw-r--r-- 1 root root 422 May 5 12:20 ip_info.txt -rw-r--r-- 1 root root 718 Apr 19 10:52 my.cnf 0 >>> subprocess.check_call("exit 1", shell=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 581, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1
check_output
>>> subprocess.check_output(["echo", "Hello World!"]) b'Hello World!\n' >>> subprocess.check_output("exit 1", shell=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 626, in check_output **kwargs).stdout File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 708, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1
subprocess.Popen(...)
>>> import subprocess >>> ret1 = subprocess.Popen(["mkdir","t1"]) >>> ret2 = subprocess.Popen("mkdir t2", shell=True) >>> print(ret1) <subprocess.Popen object at 0x7f4d7609dd30> >>> print(ret2) <subprocess.Popen object at 0x7f4d7609dc18>終端機輸入的指令分為兩種:
- #輸入即可輸出,如:ifconfig
輸入進行某一環境,依賴再輸入,如:python
#>>> import subprocess >>> obj = subprocess.Popen("mkdir t3", shell=True, cwd='/tmp/',) >>> import subprocess >>> obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) >>> obj.stdin.write("print(1)\n") 9 >>> obj.stdin.write("print(2)") 8 >>> obj.stdin.close() >>> cmd_out = obj.stdout.read() >>> obj.stdout.close() >>> cmd_error = obj.stderr.read() >>> obj.stderr.close() >>> print(cmd_out) 1 2 >>> print(cmd_error)
>>> import subprocess >>> >>> obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) >>> obj.stdin.write("print(1)\n") 9 >>> obj.stdin.write("print(2)") 8 >>> >>> out_error_list = obj.communicate() >>> print(out_error_list) ('1\n2\n', '')
#################### #######
>>> obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) >>> out_error_list = obj.communicate('print("hello")') >>> print(out_error_list) ('hello\n', '')#########相關推薦:##########利用python執行shell腳本並動態傳參及subprocess基本使用######### ####subprocess 模組的介紹與使用############Python標準庫子程序subprocess套件的詳細介紹################### ############
以上是python中subprocess批次執行linux指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具