Я думаю, что понял неправильно. Ваш скрипт пишет отчет в определенную директорию. Вам не нужен результат в маршруте вашего приложения.
Я написал небольшое тестовое приложение, которое называется tryout. Он работает в виртуальной среде.
$ mkdir tryout
$ cd tryout
$ python3 -m venv tryout
$ source tryout/bin/activate
$ export FLASK_APP=tryout/app
$ export FLASK_ENV=development
$ flask run
Структура каталогов:
/tryout
/app/*
/bin/*
/include/*
/lib/*
/subdir/*
Применение:
# /tryout/app/__init__.py
import sys, os
from flask import Flask
def create_app(env=os.getenv('FLASK_ENV', 'development')):
app = Flask(__name__)
@app.route('/run-script')
def run_script():
import subprocess
cmd = 'python script.py'
cwd = 'subdir'
ret = subprocess.check_output(cmd, cwd=cwd, shell=True)
print(ret)
return ret, 200
return app
app = create_app()
Сценарий:
# /subdir/script.py
import os, sys
def main():
with open('report.txt', 'w+') as fp:
fp.write('Info\n')
sys.stdout.write('It works!')
if __name__ == '__main__':
main()
Это работает!
Новый файл с именем «report.log» записывается в каталог «subdir».
В браузере появляется сообщение «Это работает!».
Надеюсь, я смогу вам помочь, или у меня нет реального представления о том, что вы хотите сделать.