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

要在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"

输出屏幕截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值