Python如何调用shell脚本?Python下调用Linux的Shell脚本命令的方法

有时候难免需要直接调用Shell命令来完成一些比较简单的操作,这篇文章主要介绍了Python如何调用shell脚本?Python下调用Linux的Shell脚本命令的方法,我觉得挺不错的,现在分享给大家,也给大家做个参考,下面一起来学习学习吧!

Python如何调用shell脚本?Python下调用Linux的Shell脚本命令的方法

文章插图
1. os 模块
1.1. os模块的exec方法族
Python的exec系统和Unix系统的它们两个调用exec方法的时候,使用都是同样的方式 。这种方法比较适合在一个子进程中去调用外面程序的使用情况,因为外部程序会替换当前进程的代码,不会返回 。
1.2. os模块的system方法
这个方法它会去创建一个子进程的外部程序,它返回的结果只可能是一个外部程序的运行结果 。适用于一个外部程序没有输出的时候,例如下面的例子:
import os os.system("echo \"Hello World\"") # 直接使用os.system调用一个echo命令 Hello World打印命令结果 
0val = os.system("ls -al | grep \"log\" ") 使用val接收返回值 -rw-r--r-- 1 root  root  6030829 Dec 31 15:14 log此时只打印了命令结果 print val注意,此时命令正常运行时,返回值是0
val = os.system("ls -al | grep \"log1\" ") print val256    使用os.system调用一个没有返回结果的命令,返回值为256~ 
2. commands 模块
这个模块中的有一个getoutput方法,它跟之前介绍过的popend有些区别,不同的地方在于popen每次带回来的就是一个文件句柄,而现在说的这个方法是将一个外部程序的输出结果,以一个字符串的形式进行返回,比popend方法使用起来更加的方便 。主要方法: 
commands.getstatusoutput(cmd)  返回(status, output)commands.getoutput(cmd)      只返回输出结果commands.getstatus(file)     返回ls -ld file的执行结果字符串,调用了getoutput(不建议使用)示例如下:
import commands commands.getstatusoutput('ls -lt') 返回(status, output) (0, 'total 3600\n-rwxr-xr-x 1 long long  26 Jan 6 22:34 hello.sh\n-rw-r--r-- 1 long long  150 Jan 6 21:34 MK\n-rw-r--r-- 1 long long 1523654 Jan 6 21:34 log') commands.getoutput('ls -lt') 返回命令的输出结果,与shell有些不同 。'total 3600\n-rwxr-xr-x 1 long long  26 Jan 6 22:34 hello.sh\n-rw-r--r-- 1 long long  150 Jan 6 21:34 MK\n-rw-r--r-- 1 long long 1523654 Jan 6 21:34 log'commands.getstatus('log') 调用commands.getoutput中的命令对'log'文件进行相同的操作 '-rw-r--r-- 1 long long 1523654 Jan 6 21:34 log'【Python如何调用shell脚本?Python下调用Linux的Shell脚本命令的方法】以上就是 ” Python如何调用shell脚本?Python下调用Linux的Shell脚本命令的方法” 的全部内容,希望对大家的学习有所帮助!

    推荐阅读