《自拍教程17》Python调用命令

☆樱花仙子☆ 提交于 2020-02-23 18:52:20
他山之石

何为他山之石,就是借助外界工具,来实现自己想要的功能。
命令行界面软件, 即各种命令,我们也叫命令行工具,
此类工具也是测试人员或者开发人员常用的工具的一种。
测试人员可以借助这类工具,快速实现数据处理,
比如Linux自带的wget命令(Windows这边需要自己去下载放到环境变量),
就可以实现下载文件的功能。

调用命令VS编写代码

初学编程的测试人员,编写代码,可能还会有些许难度。
比如通过requests模块, 下载一个文件的命令如下:

import requests 

url = "http://www.zipython.com/images/download_file/angel.mp3"
r = requests.get(url) 
with open("angel.mp3", "wb") as hf:
    hf.write(r.content)

但是用wget这类命令,只需要以下2行代码。

import os
os.system("wget http://www.zipython.com/images/download_file/angel.mp3")

对于初学者,尤其是用习惯了命令的人,
其实可以很快的通过os.system() 就可以调用很多很多的命令行工具软件,
进行数据处理, 所以我很建议, Python自动化测试的初学者
先别学着写代码,先学命令行的各类命令,
然后尝试用os.system()函数;
或者os.popen()函数;
或者subprocess.Popen()函数,
来调用命令,快速实现自己想要的功能。

调用命令行的3种方式:

以下3种方式,难度逐步提高,可以在实际工作中尝试使用。

推荐进阶 函数 优点 适用场景
第一阶段 os.system() 简单地顺序执行,
阻塞式地必须等上一条执行完,才能执行下一条。
非常适合不需要返回内容的批处理。
适用于简单的Python批处脚本
第二阶段 os.popen() 可以获取具体被执行命令运行后的返回输出字符串。
output = os.popen("具体命令").read()
适用于需要获取输出结果的
Python批处理脚本
第三阶段 Subprocess.Popen() 相对较复杂,
但是是Python最推荐的执行具体命令的模块。
其可以与被执行命令进行输入输出交互,
可以获取被执行命令运行后的输出字符串,
可以有很多设置项,比如timeout, shell模式等等。
复杂项目,非常推荐此方式进行调用其他命令。
适用于复杂的Python项目,
非常推荐此方式进行调用其他命令。


更多更好的原创文章,请访问官方网站:www.zipython.com

原文链接:https://www.zipython.com/#/detail?id=c6446953038644298762799638a1c3b7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!