电子表格转Python字典

12 投票
7 回答
12752 浏览
提问于 2025-04-16 10:18

我正在使用Python,想要读取一个*.ods文件,并把它转换成一个Python字典。

字典的键(key)将是第一列的值,而字典的值(value)将是第二列的值。

我该怎么做呢?我用过xlrd这个库,但它不能读取*.ods文件。

7 个回答

2

你能先把.ODS文件转换成csv格式吗?然后用Python解析csv文件就简单多了,可以使用csv这个模块。

3

虽然你可以让用户通过文件菜单选择“另存为”(你可能已经知道这个方法),但在你的情况下,这可能不是很实用。

其实,使用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。

8

这里有一些可用的选项:

  • pyexcel-ods: "这是一个用来读取、处理和写入ods格式数据的库。" 可以通过 pip install pyexcel-ods 安装。我个人推荐这个包,因为我用过,而且它还在积极维护中。

  • py-odftools: "... 一组用于分析、转换和创建ISO标准OpenDocument格式文件的工具。" 这个项目自2007年底以来就没有更新了,看起来像是被遗弃了。

  • ezodf: "一个用来创建和处理OpenDocument格式文件的Python包。" 可以通过 pip install ezodf 安装。请查看下面评论中的警告,关于这个包有一个严重的问题。

撰写回答