Python 执行系统命令,subprocess 模块的使用!

本文介绍了Python中调用系统命令的几种方式,重点讲解了subprocess模块的使用,包括基本用法、捕获命令输出、命令参数与shell命令、输出重定向、管道操作等,并与其他脚本语言的类似操作进行了对比。
摘要由CSDN通过智能技术生成

Python 可信手拈来写系统脚本,那么在 Python 中调用系统命令应该会比较便捷。所以本文来看看 Python 有几种方式调用系统命令,以及与回味一下其他几种脚本语言的类似操作。简单说来,Python 执行系统命令的方式有四种方式,即

  1. os.system(cmd) (建议用 subprocess 模块)
  2. os.popen(cmd) (Python 3 中还能用,但不推荐使用了)
  3. commands 模块 (在 Python 3 中已移除了该模块,基本是不必去了解它)
  4. subprocess 模块(总是上面的矛头全指向它的,重点)

os.system(cmd)

 Python资源共享群:484031800

启动一个子进程来执行系统命令,可以获得标准输入,不能获到命令输出, 但可以得到一个状态码

import os
status_code = os.system('cat a.py | grep username')
# username = input("Username:")

它是调用 C 函数 system(), 命令直接输出到终端,它返回的错误状态码与直接执行命令的值可能不一样

os.popen(cmd)

建立一个到命令的管道,可以捕获到命令(shell) 执行后的输出

import os
 
out = os.popen("cat a.json | grep id")
print(out.read())

不知如何得到状态码,不建议使用了,推荐用 subprocess 模块

subprocess 模块

从 os.system(cmd) 和 os.popen(cmd) 的官方文档都引导我们去使用 subprocess 模块

关于使用 subprocess 模块,这儿有个很好的学习视频, 隔着墙的朋友们请忍着些日子。

Python 可信手拈来写系统脚本,那么在 Python 中调用系统命令应该会比较便捷。所以本文来看看 Python 有几种方式调用系统命令,以及与回味一下其他几种脚本语言的类似操作。简单说来,Python 执行系统命令的方式有四种方式,即

  1. os.system(cmd) (建议用 subprocess 模块)
  2. os.popen(cmd) (Python 3 中还能用,但不推荐使用了)
  3. commands 模块 (在 Python 3 中已移除了该模块,基本是不必去了解它)
  4. subprocess 模块(总是上面的矛头全指向它的,重点)

os.system(cmd)

启动一个子进程来执行系统命令,可以获得标准输入,不能获到命令输出, 但可以得到一个状态码

import os
status_code = os.system('cat a.py | grep username')
# username = input("Username:")

它是调用 C 函数  system(), 命令直接输出到终端,它返回的错误状态码与直接执行命令的值可能不一样

os.popen(cmd)

建立一个到命令的管道,可以捕获到命令(shell) 执行后的输出

import os
 
out = os.popen("cat a.json | grep id")
print(
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值