如何从python代码调用shell脚本?
当前回答
子流程模块将帮助您解决这个问题。
显而易见的小例子:
>>> import subprocess
>>> subprocess.call(['sh', './test.sh']) # Thanks @Jim Dennis for suggesting the []
0
>>>
其中test.sh是一个简单的shell脚本,0是这次运行的返回值。
其他回答
Subprocess很好,但有些人可能更喜欢scriptine。Scriptine有更高级的方法集,如shell.call(args), path.rename(new_name)和path.move(src,dst)。Scriptine基于子流程和其他。
scriptine的两个缺点:
当前的文档水平将更加全面,即使它是足够的。 与subprocess不同,scriptine包目前默认不安装。
有一些方法使用os.popen()(已弃用)或整个子进程模块,但这种方法
import os
os.system(command)
是最简单的方法之一。
如果您的shell脚本文件没有执行权限,请按照以下方法执行。
import subprocess
subprocess.run(['/bin/bash', './test.sh'])
子流程模块将帮助您解决这个问题。
显而易见的小例子:
>>> import subprocess
>>> subprocess.call(['sh', './test.sh']) # Thanks @Jim Dennis for suggesting the []
0
>>>
其中test.sh是一个简单的shell脚本,0是这次运行的返回值。
import os
import sys
假设test.sh是您想要执行的shell脚本
os.system("sh test.sh")
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 查看PS命令的全部输出
- 使用try和。Python中的if