Выполнить команду linux в Python Flask - PullRequest
1 голос
/ 16 июня 2020

Как я могу выполнить команду linux внутри функции Python? Я буду запускать файл python на сервере linux, и в некоторых функциях я хочу иметь что-то вроде:

def function():
    #execute some commands on the linux system, eg. python /path1/path2/file.py

    # Or execute a shell script, eg. /path1/path2/file.sh

Какой модуль python мне нужен для этого?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Этот код создаст сервер flask и позволит вам запускать команды. Вы также можете захватить вывод.

import subprocess

from flask import Flask
app = Flask(__name__)

def run_command(command):
    return subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).stdout.read()

@app.route('/<command>')
def command_server(command):
    return run_command(command)

Вы можете запустить его, сохранив указанный выше текст в server.py

$ export FLASK_APP=server.py
$ flask run

enter image description here

0 голосов
/ 16 июня 2020

Попробуйте следующее:

import os, subprocess

# if you do not need to parse the result
def function ():
    os.system('ls')

# collect result
def function(command):
    out = subprocess.run(
        command.split(" "),
        stdout=subprocess.PIPE) 
    return out.stdout
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...