python执行系统命令的方法
2022/1/22 21:09:48
本文主要是介绍python执行系统命令的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
os.popen()、os.system()、subprocess.Popen()、subprocess.getoutput()、subprocess.getstatusoutput()
1、os.popen(cmd): 返回一个地址: <os._wrap_close object at 0x101f22dc0>
2、os.popen(cmd).read():返回所读取得地址的内容
3、os.system(cmd):返回内容以及执行结果,0表示正确,非0表示错误
4.1、subprocess.run(cmd,shell=True):返回 CompletedProcess 实例 => CompletedProcess(args='ls -l', returncode=0)
输入参数可以是一个字符串或列表,如果是字符串则需要shell = True;
4.2、subprocess.run(["ls", "-l", "/dev/null"]): 输入参数是一个列表
crw-rw-rw- 1 root wheel 3, 2 Jan 22 17:09 /dev/null
CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0)
5、status, output = subprocess.getstatusoutput(cmd):返回的结果和状态分开
6、subprocess.getoutput(cmd):只返回运行结果,无运行状态
import os, subprocess a = "-l" cmd = 'ls {}'.format(a) print("-------os.popen(cmd):返回一个地址") os_popen = os.popen(cmd) print(os_popen) print("\n-------os.popen(cmd).read():读取地址的内容") os_popen_read = os.popen(cmd).read() print(os_popen_read) print("\n-------os.system(cmd):返回内容以及执行结果,0表示正确") os_system = os.system(cmd) print(os_system) print("\n-------os.system(cmd):返回内容以及执行记结果,非0表示错误") os_system_error = os.system(cmd+"4") print(os_system_error) print("\n------subprocess.run(cmd,shell=True):输入参数可以是一个列表或字符串,如果是一个字符串,则需要shell=True") subprocess_run_string = subprocess.run(cmd,shell=True) print(subprocess_run_string) print("\n------subprocess.run([string1, string2]):输入参数可以是一个列表或字符串如果是一个字符串则需要shell=True") subprocess_run_list = subprocess.run(["ls", "-l", "/dev/null"]) print(subprocess_run_list) print("\n-------status, output = subprocess.getstatusoutput(cmd):运行结果和状态分开返回") status, output = subprocess.getstatusoutput(cmd) print("-------status--------") print(status) print("-------output--------") print(output) print("\n-----subprocess.getoutput(cmd):只返回运行结果") subprocess_getoutput = subprocess.getoutput(cmd) print(subprocess_getoutput)几种执行系统命令方式
-------os.popen(cmd):返回一个地址 <os._wrap_close object at 0x101f22dc0> -------os.popen(cmd).read():读取地址的内容 total 40 -rw-r--r-- 1 ad staff 172 Jan 22 16:26 listNode.py -rw-r--r--@ 1 ad staff 1153 Jan 22 16:39 test3.py -rw-r--r-- 1 ad staff 521 Jan 22 00:35 一星.py -rw-r--r-- 1 ad staff 435 Jan 22 00:36 排序汇总.py -rw-r--r-- 1 ad staff 3399 Jan 22 00:36 算法.py -------os.system(cmd):返回内容以及执行结果,0表示正确 total 40 -rw-r--r-- 1 ad staff 172 Jan 22 16:26 listNode.py -rw-r--r--@ 1 ad staff 1153 Jan 22 16:39 test3.py -rw-r--r-- 1 ad staff 521 Jan 22 00:35 一星.py -rw-r--r-- 1 ad staff 435 Jan 22 00:36 排序汇总.py -rw-r--r-- 1 ad staff 3399 Jan 22 00:36 算法.py 0 -------os.system(cmd):返回内容以及执行记结果,非0表示错误 ls: illegal option -- 4 usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...] 256 ------subprocess.run:输入参数可以是一个列表,如果是一个字符串,则需要shell = True total 40 -rw-r--r-- 1 ad staff 172 Jan 22 16:26 listNode.py -rw-r--r--@ 1 ad staff 1153 Jan 22 16:39 test3.py -rw-r--r-- 1 ad staff 521 Jan 22 00:35 一星.py -rw-r--r-- 1 ad staff 435 Jan 22 00:36 排序汇总.py -rw-r--r-- 1 ad staff 3399 Jan 22 00:36 算法.py CompletedProcess(args='ls -l', returncode=0) -------status, output = subprocess.getstatusoutput:运行结果和状态分开返回 -------status-------- 0 -------output-------- total 40 -rw-r--r-- 1 ad staff 172 Jan 22 16:26 listNode.py -rw-r--r--@ 1 ad staff 1153 Jan 22 16:39 test3.py -rw-r--r-- 1 ad staff 521 Jan 22 00:35 一星.py -rw-r--r-- 1 ad staff 435 Jan 22 00:36 排序汇总.py -rw-r--r-- 1 ad staff 3399 Jan 22 00:36 算法.py -----subprocess.getoutput(cmd):只返回运行结果 total 40 -rw-r--r-- 1 ad staff 172 Jan 22 16:26 listNode.py -rw-r--r--@ 1 ad staff 1153 Jan 22 16:39 test3.py -rw-r--r-- 1 ad staff 521 Jan 22 00:35 一星.py -rw-r--r-- 1 ad staff 435 Jan 22 00:36 排序汇总.py -rw-r--r-- 1 ad staff 3399 Jan 22 00:36 算法.py [Finished in 0.3s]几种执行命令方式返回的结果
这篇关于python执行系统命令的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程