文件在Flask中即时解析

时间:2011-02-09 20:05:04

标签: python parsing file flask

我最近收到了一些关于易于使用的Web框架的问题的建议,该框架用于我正在帮助朋友的一个简单项目,并建议使用 Flask

到目前为止,一切都在进行 - 但是我试图弄清楚如何(或者是否可能)动态读取文件,并将文件的内容传递给我拥有的函数。 / p>

例如,我想使用以下内容:

HTML方面:

<form action="process_file" method=post enctype=multipart/form-data> 
    <input type='file' name='file'> 
    <input type='submit' value="Upload and Process Selected File"> 
</form> 

我认为这是我在实际页面上使用HTML所需的全部内容,因为这样我就可以获得所需文件的路径,所以希望我能够读取所述文件。

我不确定Flask / Python方面的哪个方面 - 我只是想朝着正确的方向迈出一步,也许用两个数字或字母(在文件中)读取并输出它们同一页?

Flask / Python Side:

@app.route('/process_file', methods=['GET', 'POST'])
def process_file():
    if request.method == 'POST':
        file = request.files.get('file')
        if file:
            "Read file and parse the values into an array?"
            "Pass arguments to a Processing function and outputs result into x)"
            return render_template('index.html',answer = x)
        else:
            return render_template('index.html',error=1)

我不确定自己是否朝着正确的方向前进 - 我只是觉得有更多Flask / Python经验的人可以带领我去那里。

编辑:我还注意到Flask似乎与jQuery配合得很好,将它们组合在一起使得处理/文件解析更简单吗?

谢谢大家。

2 个答案:

答案 0 :(得分:10)

烧瓶网站上的文档(http://flask.pocoo.org/docs/patterns/fileuploads/)演示了如何正确安全地处理文件上传,我将从那里开始。如果您希望在保存之前解析文件,而不是保存它,您应该能够通过request.files使用您可以访问的FileStorage对象上的stream属性/属性。

答案 1 :(得分:1)

我假设您的代码是从flask的角度来看的。我的猜测是该文件是python file-like object。这方面的文档告诉您有关读取和写入文件的所有信息。

就解析而言,这取决于格式。我的建议是编写一些代码,以您期望的格式读入文件并使您的解析例程保持稳定。然后删除然后将其工作到您的process_file函数中。

就jquery而言,它是一个javascript库。如果你打算将它用于ajax,那么只要烧瓶说http就不知道是什么烧瓶。它不会使文件解析更简单。