警告:这不仅仅是一个代码问题,而是关于知道"为什么"实际上有些东西。
我正在尝试使用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对象是否猜测编码?感谢