我在 cStringIO 变量中创建了一个 Excel 文件。
我需要打开它并阅读它。xlrd
但是要使用该函数打开一个excel文件xlrd.open_workbook(excel_file_name)
,我需要通过它的文件名来调用它。但在这种情况下,没有文件名,因为它是一个包含 Excel 文件表示形式的 cStrinIO 变量。
如何将 cStringIO 变量转换为可以打开的真实 excel 文件?
谢谢!
看起来xlrd.open_workbook()也接受 file_contents 参数,所以可能如下?
xlrd.open_workbook(file_contents=cstringio_var.getvalue())
您可以使用tempfile.NamedTemporaryFile
.
示例(未测试):
with tempfile.NamedTemporaryFile() as f:
f.write(your_cStringIO_variable.read())
f.flush()
something = xlrd.open_workbook(f.name)