有时候难免需要直接调用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脚本命令的方法” 的全部内容,希望对大家的学习有所帮助!
推荐阅读
- 如何使用python来进行图片格式转化?python图片怎样进行格式转化?
- Python如何设置变量的访问权限?Python中设置变量访问权限的方法
- python可以批量导入网格并保存渲染图像吗?Python编程实现批量导入网格并保存渲染图像?
- 巧妙使用python命令 两个python命令使用的小妙招
- print和logging模块的有什么区别? Python中logging模块如何使用?
- 淘宝补单关键词怎么放?如何选择关键词?
- 淘宝补单平台怎么操作的?如何让补单效果变好?
- 农村淘宝加盟条件是什么?如何操作?
- 淘宝99划算节店铺红包如何设置?发放时间是多久?
- 视觉设计师如何自学?有哪些学习方法?