要在Python中显示命令输出,有两种常用方法:check_output():它使用参数运行命令并返回其输出。(official documentation)

subprocess.communicate():与进程交互:向stdin发送数据。从stdout和stderr读取数据,直到到达文件末尾。(official documentation)

我可以使用Ubuntu机器中的Python 3.5使用这两种方法查看shell文件输出。

app.py:import subprocess

from subprocess import Popen, PIPE

from subprocess import check_output

from flask import Flask

def get_shell_script_output_using_communicate():

session = subprocess.Popen(['./some.sh'], stdout=PIPE, stderr=PIPE)

stdout, stderr = session.communicate()

if stderr:

raise Exception("Error "+str(stderr))

return stdout.decode('utf-8')

def get_shell_script_output_using_check_output():

stdout = check_output(['./some.sh']).decode('utf-8')

return stdout

app = Flask(__name__)

@app.route('/',methods=['GET',])

def home():

return '

'+get_shell_script_output_using_check_output()+'

'

app.run(debug=True)

some.sh:#!/bin/bash

echo "hi from shell script"

echo "hello from shell script"

输出屏幕截图:

flask执行python脚本_如何从Flask应用程序执行Shell脚本相关推荐

  1. shell脚本和python脚本和go脚本的区别_Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例-Go语言中文社区...

    NodeJS 子进程提供了与系统交互的重要接口,其主要 API 有: 1)标准输入.标准输出及标准错误输出的接口: child.stdin 获取标准输入 child.stdout 获取标准输出 chi ...

  2. scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了

    scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了 原因 If any execution of the task encounters an ...

  3. linux停止jar程序,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` CUR_SHELL_DIR=`pwd` CUR_SHELL_NAME=`basename ${ ...

  4. linux启动脚本springboot,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` cur_shell_dir=`pwd` cur_shell_name=`basename ${ ...

  5. flask执行python脚本_如何在Flask中运行python脚本

    我有一个Flask脚本,可以创建网站并动态打印一些数据.-打印的数据应来自另一个python脚本. 我目前面临的问题是,如果我将执行python脚本的行放在执行Flask应用程序的行之前,它将运行Py ...

  6. python flask源码解析_浅谈flask源码之请求过程

    Flask Flask是什么? Flask是一个使用 Python 编写的轻量级 Web 应用框架, 让我们可以使用Python语言快速搭建Web服务, Flask也被称为 "microfr ...

  7. linux如何执行python文件_以linux命令执行Python文件 - python

    Closed. This question needs to be more focused.它当前不接受答案. 想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题 ...

  8. uibot在子程序执行js失败_使用 Node.js 将珍藏的 bash 脚本封装成命令行工具

    阐述如何将一个常用的 bash 脚本融入 npm 生态之中,此处以最近遇到的一个 CR 提交脚本为例. 背景 作为程序猿,大家或多或少地都用过 GitHub 上的 merge request 功能.当 ...

  9. windows制作定时关机脚本_自动关机、自动打开程序… 让Windows自动执行任何操作...

    文章转载于网络,侵删 Windows 中有一个非常棒的功能,叫做"任务计划程序",但是因为它的界面看起来有点复杂,导致很少有人使用它. 其实对于任何人而言,"任务计划程序 ...

最新文章

  1. jsp java乱码转换_Java Web 编码问题一:jsp的编码问题
  2. 学习《Linux设备模型浅析之设备篇》笔记(深挖一)
  3. android 自定义命名空间,Android自定义ActionBar实例
  4. 基于Service Mesh构建更现代的服务架构
  5. 博客作业02---线性表
  6. 【安全漏洞】一次前台任意文件下载漏洞挖掘
  7. JSP脚本 9大内置对象
  8. WebStorm荣获InfoWorld2014年度科技奖
  9. C++类的使用(二)—— explicit构造与const成员赋值
  10. 冠军奖10万日元+10公斤柠檬!一个简单的柠檬图像分级竞赛
  11. 2021年德国汽车产量预计同比锐减18%
  12. 河南省多校连萌(一) E题【kruskal】
  13. 程序员面试金典——18.10字符串变换
  14. javascript 函数,数组,document.write()
  15. Excel实现电子发票管理
  16. 数学-盲点题:九个点用四条直线连起来
  17. camera中文版软件 ip_摄像头监控软件|IP Camera Viewer V 3.0.4.0 官方版-完美软件下载...
  18. 人体时钟屏保-widows电脑屏幕保护
  19. 前端工程师的 caniuse
  20. allegro artwork设置和颜色设置的导入导出

热门文章

  1. oracle的redo与undio
  2. Docker垃圾清理方案
  3. Spring Batch示例教程
  4. CSS那些不大不小的事
  5. 观察者模式,从公众号群发说起
  6. jrebel 远程部署 配置记录
  7. C#LeetCode刷题-队列
  8. Jmeter基本概念介绍
  9. docker 容器 日志_如何为Docker容器设置日志轮换
  10. mvc中的mvc分别指什么_什么是MVC,它像三明治店吗?