一、背景说明

以前就感觉进步的速度和博客的数量成正比,所以很长一段时间内想不通为什么很多博客为什么到最后很少甚至不在更新了,直到最近自己也快成为断更的一员。

这段时间其实碰到和解决了挺多典型的问题,但上班高负荷运转下班没心思周末觉得太耗费时间,就导致一直拖着没写。

但Python执行系统命令这个问题,从学Python之初就一直在困扰,到最近又反复几次在上边遇到问题,实在是受不了。

二、Python执行系统命令的实现方式

2.1 执行命令不需要获取命令输出--os.system

有时候我们只需要执行命令并不需要获取命令的执行输出,此时我们就可以使用os.system()实现。

os.system()是C语言system()函数的封装,返回命令的退出状态码,命令执行结果输出到标准输出(stdout/窗口)。

使用示例如下:

importos

command= "ifconfig"exit_code=os.system(command)#理论上command是一个字符串,但实际看command还是得变为字节数组#当命令中存在中文时可能会报编码错误,此时可以自己给命令编一下码#exit_code = os.system(command.encode("gbk"))

2.2 执行系统命令并获取命令输出--os.popen()

如果我们想要获取命令的输出os.system()是不能实现的,此时可以使用os.popen()来实现。使用示例如下:

importos

command= "ifconfig"command_output=os.popen(command).readlines()print(command_output)

2.3 Python3更好的实现方式--subprocess

Python3引入了封装程序更高的subprocess模块。使用示例如下:

importsubprocess

command= "ifconfig"

#命令如果带参数则不能直接使用字符串的形式,不然后报FileNotFoundError: [Errno 2] No such file or directory: 'ifconfig -a'等错误#此时有两种处理办法,一种是写成以空格为分割的列表形式。可借助shlex.split(command_line)实现自动分割#command = ["ifconfig", "-a"]#别一种是将shell参数置为True#completed_process_obj = subprocess.run(command, shell=True)#当配置了stdout参数,completed_process_obj的stdout属性就会保存命令的输出

completed_process_obj = subprocess.run(command, stdout=subprocess.PIPE)print(completed_process_obj.stdout.decode())#subprocess.Popen()基础参数和run()差不多,比run()对命令进程有更强的控制能力。其也能用来获取命令输出#popen_obj = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)#print(popen_obj.stdout.readlines())#其他如subprocess.call()、subprocess.check_call()、subprocess.check_output()都是旧方法了,Python3.5+都建议用run()

python运行命令_Python执行系统命令教程相关推荐

  1. python调用系统_python 执行系统命令

    Python中执行系统命令常见的几种方法: (1)os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 # 如果再命令行下执行,结果直接打印出来 例如: >> ...

  2. python运行命令_Python中执行外部命令

    有很多需求需要在Python中执行shell命令.启动子进程,并捕获命令的输出和退出状态码,类似于Java中的Runtime类库. subprocess模块的使用: Python使用最广泛的是标准库的 ...

  3. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  4. python执行系统命令的方法_python执行系统命令的方法 :os.system(),subprocess.popen(),command...

    最近接触到os.system(),subprocess.popen()和commands来执行系统命令,从网上搜索到许多,现整理如下. 1. 使用os.system("cmd") ...

  5. python的运行过程_python执行流程

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 上篇文章python基础-基础使用我们已经知道了python解释器,python ...

  6. python打印字节流_Python 调用系统命令的模块 Subprocess

    有些时候需要调用系统内部的一些命令,或者给某个应用命令传不定参数时可以使用该模块. 初识 Subprocess 模块 Subprocess 模块提供了多个方法来运行额外的进程.在 Python2.7 ...

  7. pip升级python包命令_python安装扩展库常用的是什么工具

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 目前如果你在 http://python.org 下载最新版本的安装包,则是已经自带了该工具. P ...

  8. python运行器_python 运行器

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! #usrbinenv python3 import timedef outer( ...

  9. python运行方法_python运行py文件的几种方法

    有时候我们在进行python编程的时候,想运行py文件,怎么运行呢,下面来分享一下方法 工具/原料 python 运行py文件的几种方法 方法一:通过命令行窗口运行 1 第一步我们首先复制一下py文件 ...

最新文章

  1. Problem B: 故障电灯(light)
  2. linux6个服务级别,RHEL 6 和 RHEL 7 的一些有关运行级别,服务管理,服务启动等方面的区别介绍...
  3. override和overload
  4. 论文笔记_S2D.33_2015-ICCV_使用单个多尺度卷积网络,预测深度、表面法线和语义标签
  5. htc思想[second]
  6. 中国医大CT-YOUNG 闪讯和深澜并存的验证机制研究
  7. 英语十大词性之三 - 形容词
  8. [精简]托福核心词汇20
  9. python表白玫瑰花绘制——情人节表白(亲测)
  10. 「CTS2019 | CTSC2019」氪金手游 解题报告
  11. python基础学习-反射
  12. Android自定义view 滑动开关 支持左右滑动 适用于listview
  13. CVPR 2022 最新106篇论文分方向整理|包含目标检测、动作识别、图像处理等32个方向
  14. 麦肯锡精英的39个工作习惯
  15. SQLite查询记录总数
  16. win7计算机usb解除禁用,win7系统USB接口被禁用了怎么办?win7USB被禁用后打开的方法教程...
  17. gof23 设计模式 各个模式代码demo
  18. 服务机器人“大战”进入下半场,竞争焦点变了
  19. chromium 33 视频编解码
  20. 大数据,云计算系统架设卫星授时(GPS北斗时钟)的重要性

热门文章

  1. Matplotlib中subplot以及subplots的用法
  2. 关于chatgpt等类ai是否具有意识的杂谈
  3. 2023年湖北省中级职称评审申报条件是什么呢?学历不够可以申报吗?
  4. Android新浪微博签名无法生成MD5签名
  5. 让一维数组像糖果盒一样简单
  6. c语言入门第6,c语言入门经典 第5版_c语言入门经典_c语言入门自学(6)
  7. CC2540驱动安装: CC2540 USB dongle COM port driver
  8. Android 签到功能
  9. apache poi 生成word 3D折线图 maven
  10. 软件项目管理(CMMI成熟度)实践——之决策分析(1)