我注意到生成的 Excel 文件的文件类型pandas.DataFrame.to_excel
是Zip archive data, at least v2.0 to extract
. 请注意,内容类型很好:content_type, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.
在我的 Django 项目中,我本质上是在处理上传的文件之前验证文件类型,虽然生成的文件pandas.DataFrame.to_excel
是有效的 Excel 文件,但验证模块拒绝上传的文件,因为文件类型是Zip archive data, at least v2.0 to extract
,而不是Microsoft Excel 2007+
.
请让我知道如何绕过此验证。
我用来复制的代码(即创建具有文件类型的 Excel 文件Zip archive data, at least v2.0 to extract
)这个问题就在这里。
import pandas as pd
import os
import magic
uploaded_file_path = r'somepath'
path, filename = os.path.split(uploaded_file_path)
filename_without_extension = os.path.splitext(filename)
new_file_name = os.path.join(path, filename_without_extension[0]) + '_TESTING_BLAH_' + str(1) + '.xlsx'
df1 = pd.DataFrame([['a', 'b'], ['c', 'd']],
index=['row 1', 'row 2'],
columns=['col 1', 'col 2'])
df1.to_excel(new_file_name)
file_type = magic.from_file(new_file_name)
print(file_type)