博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python subprocess 模块测试
阅读量:4215 次
发布时间:2019-05-26

本文共 1358 字,大约阅读时间需要 4 分钟。

python在2.4版本后引入subprocess来管理子进程,简单来说就是可以调用外部程序,取代之前os.system,os.spawn等旧的的方法其中subprocess提供了多种方法来执行子进程,分别是subprocess.callsubprocess.check_allsubprocess.check_outputsubprocess.Popen>>> retcode=subprocess.call(["ls","-al"])total 1865448drwxr-xr-x  30 tiantao User       4096  2月 12 20:22 .drwxr-xr-x 204 root    root       4096  1月 14 14:10 ..-rw-r--r--   1 tiantao User     234911  1月  2 18:59 afterdrwx------   4 tiantao User       4096  9月 15  2017 .ansible-rw-------   1 tiantao User          0  3月  2  2018 .ansible_galaxy>>> print retcode0>>>上面语句可以看到和直接执行ls -al的结果是一样的,直接输出ls -al的执行结果,并且ls -al结果为零,类似于shell中的$?例如原本在shell中的语句output=`mycmd myarg`# becomesoutput = check_output(["mycmd", "myarg"])output=`dmesg | grep hda` # becomesoutput=check_output("dmesg | grep hda", shell=True)status = os.system("mycmd" + " myarg")# becomesstatus = subprocess.call("mycmd" + " myarg", shell=True)或者这个来判断命令执行后的返回值try:    retcode = call("mycmd" + " myarg", shell=True)    if retcode < 0:        print >>sys.stderr, "Child was terminated by signal", -retcode    else:        print >>sys.stderr, "Child returned", retcodeexcept OSError as e:    print >>sys.stderr, "Execution failed:", e使用Popen可以替代os.spwalppid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg")==>pid = Popen(["/bin/mycmd", "myarg"]).pidos.spawnvp(os.P_NOWAIT, path, args)==>Popen([path] + args[1:])

 

转载地址:http://dvnmi.baihongyu.com/

你可能感兴趣的文章
【屌丝程序的口才逆袭演讲稿50篇】第十二篇:世界上最快的捷径【张振华.Jack】
查看>>
Android中Java代码和XML布局效率问题
查看>>
android TextView属性大全(转)
查看>>
Conclusion for Resource Management
查看>>
Conclusion for Constructors,Destructors,and Assignment Operators
查看>>
Conclusion for Accustoming Yourself to C++
查看>>
面试题1:赋值运算函数(offer)
查看>>
Mark : MessagePack简介及使用
查看>>
Mark : Hadoop Raid-实战经验总结
查看>>
Structured Streaming 实现思路与实现概述
查看>>
Apache Spark 2.2.0 中文文档 - Structured Streaming 编程指南 | ApacheCN
查看>>
Mark:大数据最佳学习路线
查看>>
Spark 多线程模型
查看>>
编程第一性原则
查看>>
Mark : SpringBoot核心-非关系型数据库NoSQL
查看>>
Mark : hive文件存储格式
查看>>
mark : hadoop 四种压缩格式
查看>>
Mark : hive snappy的数据是否支持split的测试
查看>>
Hadoop 压缩格式
查看>>
Mark : Spark Streaming vs. Kafka Stream 哪个更适合你
查看>>