2017-04-11 6 views
0

I는 CSV를 파싱 및 출력을 표시 파이썬 플라스크 상기python flask에서 CSV를 처리하고 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를 사용하여 파싱하기 위해 코드를 사용했다. 하지만 쉘 스크립트 자체로 진행하기 위해 출력을 쉘 스크립트에 입력으로 보내야합니다. 미리 감사드립니다 ...

+1

적어도 내가 주저하지 않고 * 여기에서 편집하는 코드 형식을 승인했습니다. 왜냐하면 적어도 그것이 그보다 더 나쁜 질문을 할 수 없었기 때문입니다. OP 표면 상으로는 수정 된 코드의 내용이 실제 코드와 다른 경우 OP를 검토하고 후속 조치를 취하십시오. 장래에 올바른 들여 쓰기로 파이썬 코드를 포맷하십시오 (팁 : 코드 복사/붙여 넣기, 붙인 블록 선택, ctrl-K를 입력하여 Markdown 코드 포맷 적용). – tripleee

답변

0

처음에 나는 commission.sh의 내용에 대해 궁금합니다. render_template의 첫 번째 매개 변수로 템플릿 파일 이름을 전달해야합니다. Jinja는 쉘 스크립트를 실행할 수 없습니다.

첫 번째 답변에서 지적한 것처럼 첫 번째 return 문 다음의 내용은 실행되지 않습니다. 어떤 프로그래밍 언어를 사용하든 상관 없습니다.

question을 따라 파이썬 (플라스크)으로 쉘 스크립트를 실행할 수 있습니다. 그런 다음 결과를보기 함수로 반환합니다.

csv를 구문 분석하는 데 많은 시간이 걸리므로 플라스크로 Celery을 시도해 보는 것이 좋습니다.