使用Flask中的FileStorage对象读取非utf编码的XML文件

时间:2018-01-25 09:59:35

标签: python flask beautifulsoup

警告:这不仅仅是一个代码问题,而是关于知道"为什么"实际上有些东西。

我正在尝试使用Flask来解析用户使用表单导入的XML文件,而无需将其保存在服务器上的任何位置。看完这个帖子后:

Read file data without saving it in Flask

我已经理解Flask将文件作为FileStorage对象传递,FileStorage对象是内存中的一个流对象,它有一个可用于打开文件的.read()方法。我的麻烦是该文件不是utc-8编码的,如果我尝试离线读取它,我会得到一个编码错误。但是,当我使用这个FileStorage对象时,不需要提供编码,代码工作正常,如下所示。

@app.route('/API/parsefile/', methods=['POST'])
def getfile():
    if request.method == 'POST':

        # import the file from the webform
        file = request.files['xbrfinput']

        # Read the file
        pf = bs(io.BytesIO(file.read()), "lxml")

        return pf.find("xxx")

有人会关心向我解释为什么这有效吗? FileStorage对象是否猜测编码?感谢

0 个答案:

没有答案