调用外部程序

python是粘合语言

现成的工具软件,它们都可以完成一些功能(wget,ffmpeg)ffmpeg 用于win上录制视屏

有时需要扩展以下,添加一点功能(free)free Linux查看内存占用率

有时需要把工具软件结合起来(free、gnuplot)

粘合各种外部程序和各种语言的库,实现功能

两种方法:

1、os.system

os库里面的system函数

等于打开操作移动的shell,敲入一串命令

比如 mspaint 命令(画图)

需要等待被调用的程序退出,才能返回

import os

os.system('mspaint') # win下调用画图程序

# os.system('mspaint d:\1.jpg') #用户图程序自动打开图片

print('after call')

ffmpeg

退出码(通过退出码判断是否正常运行(调用是否成功))

import os

ret = os.system('ls') # mac下列出当前目录所包含的文件

print('.................')

print(ret) # 打印退出码,==0 表示调用成功

print('---------------------')

ret = os.system('ls dd') # mac下列出当前目录所包含的文件

print('.................')

print(ret) # 打印退出码,!=0 表示调用失败

# 执行结果

异常.py

连接Linux.py

.................

0

---------------------

.................

256

ls: dd: No such file or directory

Linux的命令:ls ;echo $?

通常退出码为0,表示成功

2、subprocess

可以调用外部程序,且可以获得外部程序的输出内容

可以输入

subprocess.check_output 需要等待被调用的程序退出,才能返回

import subprocess

# shell=True表示使用终端shell执行程序,Windows下面就是cmd.exe

# 就是我们python程序调用cmd.exe再由cmd.ext执行 参数命令

ret = subprocess.check_output('dir',shell=True,encoding='gbk')

# 如果有中文,需要decode,因为是中文os,所以cmd.exe输出是gbk编码

# dir 目录 可以查看该目录下包含哪些文件

print(ret)

# 如果不指定enconding,返回的就是字节串

# print(ret.decode('gbk'))

subprocess库里面的Popen类,可以:

被调用程序运行时候,就获取其输出的信息

运行时,输入一些信息给被调用程序

非阻塞式调用

输入输出重定向

装饰器

函数里再定义函数(只在第一层函数内有效)

函数里再定义类(只在第一层函数内有效)

装饰器

定义类的静态方法时,就使用了装饰器。

@staticmethod

def jump()

print('3 meters high')

装饰器的特点是用一个@开头的字符串

在我们阅读别人的代码时,会经常碰到装饰器

装饰器通常用来装饰函数

装饰器主要用来给函数增加一点功能/改变一些功能

一般装饰器本身也是一个函数(callable)

我们可以想象成它包含了被装饰的函数

python装饰器怎么调用_Python学习22-外部程序的调用装饰器相关推荐

  1. python多个装饰器执行顺序_Python面试题之多个装饰器执行顺序

    疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会说明它们是自上而下的,比如下面这个例子:def decorator_a(func): print 'Get in decorator_a' def i ...

  2. python爬虫库的功能_Python学习爬虫掌握的库资料大全和框架的选择的分析

    学Python,想必大家都是从爬虫开始的吧.毕竟网上类似的资源很丰富,开源项目也非常多. Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 当我们在浏览器中输入一个url后回车,后台会发生 ...

  3. saspython知乎_python学习笔记---linux/windows调用sas程序

    --------仅用于个人学习知识整理和sas/R语言/python代码整理 --------文章使用数据都为脱敏模拟数据 1.windows下 1.1 安装sas kernel: 跑偏了一下 其实不 ...

  4. python爬虫实训日志_Python学习学习日志——爬虫《第一篇》(BeautifulSoup)

    爬虫简介(学习日志第一篇) 一.爬虫介绍 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Pyyhon爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.U ...

  5. python写完程序保存_Python学习笔记——文件处理

    1.文件路径 1.1 不同系统环境下的路径 1.2 当前工作目录 1.3 绝对路径和相对路径 1.4 新建文件夹-- os.makedirs() 2.文件的读写 2.1 打开文件 2.2 读写文件 3 ...

  6. python继承和多态心得_python学习第十五天 -面向对象之继承和多态

    大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承:当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有的 ...

  7. python游戏编程网课_Python 学习最佳方式_创建游戏_编程一个机器人

    Python 是世界上功能最多且最强大的编程语言之一.使用 Python,你可以编写自己的应用程序,创建游戏.设计算法.甚至编程一个机器人.学习 Python 还可以担任软件工程师.Web 开发人员. ...

  8. java装饰者模式服装搭配,学习、探究Java设计模式——装饰者模式

    定义 装饰者模式:在不改变原类文件以及不使用继承的情况下,动态地将责任附加到对象上,从而实现动态拓展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 设计原则 要使用装饰者模式, ...

  9. python我想对你说_python学习22天----模块、包

    1.from ...import  xxx 例: frommy_moudle importlogin 1)from import 的时候发生了什么 ①先找到my_moudle模块 ②开辟一块属于这个模 ...

最新文章

  1. java864位官网_jdk8 64位下载-jdk8 64 bit windows官方版 - 极光下载站
  2. php函数设置默认值,php函数如何设置默认值作为对象?
  3. 亿级流量场景下的平滑扩容:TDSQL的水平扩容方案实践
  4. java 广义表_java 输入广义表 生成二叉树 | 学步园
  5. Mysql报错130_mysql 突然报错,连接不上
  6. 吉哥系列故事――完美队形II(HDU-4513)
  7. httos双向认证配置_Fabric区块链如何启用双向TLS?
  8. 包信封问题 以及 最长有序子序列问题
  9. 类型②typeof 操作符
  10. 关于 sinc函数和rect函数 傅里叶变换的思考
  11. 智能配电系统监控解决方案在长白山机场配电工程的研究与应用
  12. 注意:QQ空间加密并不安全
  13. 深度学习之蛋白质二级结构预测
  14. Opencv3基础操作3——图像形态学处理
  15. FPGA_硬件电路(自用)
  16. 2019年肖秀荣命题人讲真题上下两册【全】
  17. 华为手机android9隐藏游戏的方法,我的华为Mate10pro为什么玩不了安卓隐藏小游戏?...
  18. DDD领域驱动设计为什么那么玄学,因为你从来都没看过原书
  19. 【FGF 2】重组人碱性成纤维细胞生长因子新手说明书
  20. 边框发光样式css3,用CSS3实现发光方格边框

热门文章

  1. IllegalStateException: Error reading delta file hdfs://xxx/spark/xx/state/0/11/1.delta
  2. 95-268-280-源码-Flink通信层的序列化与反序列化
  3. 【Flink】Flink 多并行度下的 watermark触发机制
  4. RocketMQ : RemotingTooMuchRequestException: sendDefaultImpl call timeout
  5. Mac下安装Flink的local模式(flink-1.5.2)
  6. Mac下安装Flink的local模式(flink-1.0.2)
  7. scala学习-scala中的元组Tuple概念
  8. RabbitMQ和Kafka的显著差异(1)
  9. WinForm中导出Excel
  10. java国王毒酒答案,换换脑子500桶酒国王用囚犯找毒酒答案-500桶酒其中1桶是毒酒找毒酒答案最新版【附公式详解】-东坡下载...