我尝试解析不同类型的非常大的Excel文件(.csv,.xlsx,.xls)
.csv 可以使用pandas.read_csv(file, chunksize=chunksize)
.xlsx 是可以通过解压缩并使用lxml.etree.iterparse(zip_file.open('xl/worksheets/sheet1.xml'))
和lxml.etree.iterparse(zip_file.open('xl/sharedStrings.xml'))
解析内部.xml文件,然后再执行其他操作来实现的。
.xls 我找不到有关如何将这个文件拆分成块的任何信息!
详细信息:我的文件有一种Django的TemporaryUploadedFile
。我是通过request.data['file']
请求PUT
获得的。
我得到的文件路径如request.data['file'].temporary_file_path()
。这是'/tmp/tmpu73gux4m.upload'。 (我不确定*****。上传文件是什么。我猜这是某种HTTP文件编码)
当我尝试阅读时:
file.open()
content = file.read()
content
看起来像字节字符串b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00...etc.
是否有任何编码和解析此字节字符串的方法?
理想情况下,我想逐行读取.xls,而不是立即将整个文件加载到RAM中。有没有办法做到这一点?