电子表格转Python字典
我正在使用Python,想要读取一个*.ods文件,并把它转换成一个Python字典。
字典的键(key)将是第一列的值,而字典的值(value)将是第二列的值。
我该怎么做呢?我用过xlrd
这个库,但它不能读取*.ods文件。
7 个回答
你能先把.ODS文件转换成csv格式吗?然后用Python解析csv文件就简单多了,可以使用csv这个模块。
虽然你可以让用户通过文件菜单选择“另存为”(你可能已经知道这个方法),但在你的情况下,这可能不是很实用。
其实,使用libreoffice或openoffice服务会更简单。这种服务可以在服务器上完全不需要图形界面运行,也就是说不需要安装或启动X11,这样可以得到干净的原生转换结果。
libreoffice --without-x --convert-to csv filename.ods
你可以查看libreoffice --help(或者openoffice --help)来获取更多细节。这个操作也可以放在os.system()、subprocess.*()等命令中执行。(注意:在Windows上使用-convert-to选项。)另外要注意的是,你不能同时运行任何Libre/Open/Star office的实例,包括快速启动程序。
更新:早期版本的LibreOffice使用的是--headless,而不是--without-x。
这里有一些可用的选项:
pyexcel-ods: "这是一个用来读取、处理和写入ods格式数据的库。" 可以通过
pip install pyexcel-ods
安装。我个人推荐这个包,因为我用过,而且它还在积极维护中。py-odftools: "... 一组用于分析、转换和创建ISO标准OpenDocument格式文件的工具。" 这个项目自2007年底以来就没有更新了,看起来像是被遗弃了。
ezodf: "一个用来创建和处理OpenDocument格式文件的Python包。" 可以通过
pip install ezodf
安装。请查看下面评论中的警告,关于这个包有一个严重的问题。