我们在执行一些简单的脚本语言时,python简洁的优势就展现出来了。但是也有一些多层任务的叠加,就需要我们借用shell来完成了。本篇整理了两种shell调用的方法:system和popen(),这两个函数也是在执行命令时会调用到的。下面我们就这两种方法展开详细的讲解。
1.os.system
直接在终端输出执行结果,返回执行状态0或者1。
此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示。这实际上是使用C标准库函数system()实现的;
缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果;
实例
import os os.system('cd /')
2.os.popen()
打开一个与command进程之间的管道;这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是 ‘r’)。如果mode为’r’,可以使用此函数的返回值调用read()来获取command命令的执行结果。
os.system(cmd)或者os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际是使用时视情况而选择;
实例
subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
以上就是python中shell的调用,可以说两种方法各有利弊,大家在使用时可以根据自己的需要来选择。有关调用shell的方法还有很多,大家可以在课外了解一下。