像wget可以下载文件
ffmpeg可以切割、合并、转换、录制视频
free命令可以查看linux内存使用信息

python提供了库来调用外部程序、命令?
最常见的两种方法:
       ①os.system os库里面的system参数
       ②subprocess subprocess库 里面的对和函数

如:

import os
       os.system('notepad')
       print('记事本已关闭')
注意:调用外部程序没有退出时,python程序会一直停在那里

对于有参数的命令,os.system()参数 直接把参数放在字符串中一起传入即可

向记事本传递参数,打开python.txt文件?

如:
       import os
       os.sys('notepad c:\python.txt')

=====================================================

python实现录屏功能?

import os

# 输出视频文件
import time

outputfile = 'C:\shipin' + time.strftime('%Y%m%d_%H%M%S', time.localtime()) + '.mp4'

# 工具目录
ffmpeg = r'C:\FFmpeg\安装包\ffmpeg-4.1-win64-static\bin\ffmpeg.exe'

settings = [
'-y -rtbufsize 100M -f gdigrab -framerate 10', # 帧率等
'-offset_x 1000 -offset_y 0 -video_size 640x480', # 录制指定屏幕区域
'-draw_mouse 1 -i desktop -c:v libx264', # 视频编码格式
'-r 20 -preset medium -tune zerolatency -crf 35', # 视频压缩参数
'-pix_fmt yuv420p -fs 100M -movflags +faststart "%s"' % outputfile # 大小限制 等
]

# 将参数组合起来
recordingCmdLine = ' '.join([ffmpeg]+settings)

# 查看命令内容
print(recordingCmdLine)

# 执行命令录制视频
os.system(recordingCmdLine)

======================================================================================
# 返回值
# 不管windows还是linux,如果一个程序它的退出码为0就是表示成功的话
# 如果我们只需要判断调用是否成功,也就是是否为0

import os
import subprocess

# ret = os.system('ls')
# if ret == 0:
# print(ret)

# os.system提供了简单的调用其他程序的功能
# 而python里面有另一个模块subprocess,提供了更为强大的功能
# 使用subprocess最常见的目的就是检查应用的输出

# 因为os.system只能获得返回码,输出到屏幕的内容并不能获取
# 如果想获取被调用的命令或工具输出到终端的信息,并进行处理,可以使用subprocess库里面的check_output函数
# 这个方法需要等到被动月供程序退出,才能返回
# shell=True 表示使用终端shell执行程序;参数encoding:指定哪种解码方式,
# 不填,是缺省值None,需要我们自己去解码
# ret = subprocess.check_output('dir', shell=True, encoding='gbk')
# print(ret)
# print(ret.decode('gbk'))# 如果我们需要被调用程序还没退出时,就获取其输出的信息;# 或者在被调用程序运行的过程中,输入一些信息给被调用程序

# 需要使用subprocess库里面的Popen类
# Popen可以非阻塞式调用外部程序,也就是说,无需等待被调用程序结束。脚本的代码可以继续往下执行
from subprocess import PIPE,Popen
# popen = Popen(args='notepad c:\python.txt', shell=True)
# print('done')

# Popen同样可以获取外部程序的输出
# stdout=PIPE 表示将被调用的程序的标准输出信息获取到管道文件中
# 要获取程序的输出信息,就要这样指定。
popen = Popen('dir c:',
                          stdout=PIPE,
                          shell=True,
                          encoding='gbk')
output, err = popen.communicate()
print(output)
print('----------------------------------------------')
print(err)

笔记||Python3进阶之调用外部程序的更多相关文章

  1. 笔记||Python3进阶之读取和写入yaml配置文件

    yaml是专门用来写配置文件的语言,简洁强大,远比JSON格式方便,yaml在python语言中有PyYAML安装包. - 首先需要pip安装:pip install pyyaml - yaml基本语 ...

  2. 笔记||Python3进阶之装饰器

    # 装饰器# 特征: 是用一个@开头的字符串# 装饰器通常用来装饰函数.或者类的方法# 被装饰后的函数,通常是在原有的函数基础上,会多出增加一点功能# 一般来说装饰器本身也是一个函数## def te ...

  3. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  4. MySql UDF 调用外部程序和系统命令

    1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysq ...

  5. C#winform调用外部程序,等待外部程序执行完毕才执行下面代码

    1.简单调用外部程序文件(exe文件,批处理等),只需下面一行代码即可 System.Diagnostics.Process.Start(“应用程序文件全路径”); 2.如果要等待调用外部程序执行完毕 ...

  6. Delphi 调用外部程序并等待其运行结束

    转自:http://blog.csdn.net/xieyunc/article/details/4140620   如何让Delphi调用外部程序并等待其运行结束 1. uses     Window ...

  7. QProcess调用外部程序方式的差异

    众所周知QProcess类的作用是启动一个外部的程序并与之交互它有三种方式调用外部程序: 1. execute 2. start 3. startDetached 从调用上看: execute是阻塞调 ...

  8. C#使用Process类调用外部程序(转)

    在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...

  9. PowerShell中调用外部程序和进程操作命令例子

    学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题.调用了外部程序,势必就要对进程进行管理,这就是 ...

随机推荐

  1. Java web 会话技术 cookie与session

    一.会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话过程中要解决的一些问题 每个用户在使用浏览器与服务器进行会话的过程 ...

  2. Java面向对象编程 -6.4

    二维数组 数组的定义格式 数组的动态初始化:初始化之后数组中的每一个元素的保存的内容为其对应数据类型的默认值 声明并初始化数组: 数据类型 数组名称 [][] = new 数据类型[行个数][列个数] ...

  3. 支付接口API

    //微信支付SDK https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

  4. 洛谷 P1076 寻宝(模拟 && 剪枝)

    嗯... 题目链接:https://www.luogu.org/problem/P1076 这道题的题意首先太难理解...并且细节太多... 可以用b[i][j]记录每个指示牌上的数字,a[i][j] ...

  5. 「BZOJ4548」小奇的糖果

    传送门 memset0好评 解题思路 比较恶心的一道数据结构题 看一眼题面,马上想到离散化. 然后将一维排序,另一维用树状数组或者线段树维护. 然后就没思路了 发现一个性质: 不包含所有的颜色,当然要 ...

  6. 手把手教你使用Hexo+GitHub搭建自己的个人博客网站

    安装nodejs环境 这个直接搜索安装即可,安装完成之后,通过如下命令检测环境变量是否安装成功: λ node -v # 输出版本号 v12.13.1 正确输入版本号即可. 安装cnpm cnpm是淘 ...

  7. linux--网络管理-ifconfig,route,netstat,ip,ss,dns,主机名网卡名修改bond

    cat /etc/services 查看常见端口对应的服务 查一查某个端口号,是哪个进程在用  lsof  -i :6010 49152-65535:动态端口或私有端口,客户端程序随机使用的端口  其 ...

  8. 重新梳理IT知识之java-01语法(一)

    标识符的命名规范 包名:xxxyyyzzz 类名.接口名:XxxYyyZzz (大驼峰) 变量名.方法名:xxxYyyZzz 常量名:XXX_YYY_ZZZ //**************强制类型转 ...

  9. Algorightm----DynamicProgramming

    参考资料: 1.  告别动态规划,连刷40道动规算法题,我总结了动规的套路

  10. 【原】 python中? : 三元表达式的使用介绍

    python 三元表达式 之前学习的Python提到了对于类似C语言的三元条件表达式condition ? true_part : false_part,虽然Python没有三目运算符(?:),但也有 ...