在Flask中实时文件解析

4 投票
2 回答
9474 浏览
提问于 2025-04-16 11:32

我最近收到了一些建议,关于一个简单项目中使用哪个易于上手的网页框架来帮助我的朋友,大家推荐我用 Flask

到目前为止,一切都很顺利。不过,我现在想弄明白怎么实时读取一个文件,并把文件的内容传递给我写的一个函数。

比如,我想用类似下面的方式:

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> 

我觉得在实际的网页上只需要这些内容,因为这样可以让我获取到需要的文件路径,希望我能顺利读取这个文件。

我不太确定在 Flask/Python 这边该怎么做——我只是想找个方向,或许可以从文件中读取两个数字或字母,然后在同一页面上显示出来?

Flask/Python 部分:

@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 和 jQuery 似乎配合得很好,使用它们组合在一起会不会让处理和解析文件变得更简单呢?

谢谢大家。

2 个回答

1

我猜你写的代码在Flask这个框架下是没问题的。我猜那个文件是一个Python的类文件对象。关于这个的文档里有你需要知道的所有关于读写文件的信息。

至于解析文件,这就要看文件的格式了。我建议你先写一些代码,按照你预期的格式读取文件,并确保你的解析过程是稳固的。然后再把这个过程整合到你的process_file函数里。

至于jQuery,它是一个JavaScript库。只要Flask能够使用HTTP,它就不在乎Flask是什么。如果你打算用它来做Ajax请求的话。不过,这并不会让文件解析变得简单。

10

Flask网站上的文档(http://flask.pocoo.org/docs/patterns/fileuploads/)展示了如何正确和安全地处理文件上传,我建议你从那里开始。如果你想在保存文件之前或者不保存文件的情况下解析它,你可以使用通过request.files获取的FileStorage对象上的stream属性。

撰写回答