如何在python烧瓶中处理CSV并将csv数据作为输入发送到shell脚本?

时间:2017-04-11 07:19:43

标签: python shell csv flask flask-admin

我已使用此代码使用python flask解析csv

from flask import Flask, make_response, request, render_template
import csv

app = Flask(__name__)

def transform(text_file_contents):
    #return text_file_contents.replace("=", ",")
    return text_file_contents

@app.route('/') 
def form():
    return """ Transform a file demo
      <form action="/transform" method="post" enctype="multipart/form-data">
        <input type="file" name="data_file" />
        <input type="submit" />
      <form>"""

@app.route('/transform', methods=["POST"])
def transform_view():
    file = request.files['data_file']
    if not file:
        return "No file"

    file_contents = file.stream.read().decode("utf-8")
    csv_input = csv.reader(file_contents) 
    result = transform(file_contents)
    print result
    return result
    return render_template('commission.sh', result=result)

if __name__ == "__main__":
    import webbrowser
    webbrowser.open('localhost:5000')
    app.run()

以上是解析csv并显示输出。但我需要将输出作为输入发送到shell脚本以继续进行shell脚本本身..提前感谢...

1 个答案:

答案 0 :(得分:0)

起初,我对commission.sh的内容感到好奇。您需要传递模板文件名作为render_template的第一个参数。 Jinja无法为您执行shell脚本。

正如第一个答案所指出的那样,第一个return语句之后的内容将不会被执行。无论您使用何种编程语言。

您可以按照此question在python(flask)中执行shell脚本。然后在视图函数中返回结果。

如果解析csv是一项耗时的任务,我建议您尝试使用Celery烧瓶。