【问题标题】:I don't know why I cannot import the .ods file我不知道为什么我不能导入 .ods 文件
【发布时间】:2018-09-24 14:26:02
【问题描述】:

我不能使用 Python 包“xlrd”。

我想处理一个excel数据并准备好ods文件并保存在这个python文件所在的目录中。 我正在尝试导入 ods 文件,但出现以下错误。

Python 代码

import xlrd

book = xlrd.open_workbook("lung.ods")

错误

 In [21]: runfile('/home/****/Desktop/working/survival10.py', wdir='/home/****/Desktop/working')
Traceback (most recent call last):

 File "<ipython-input-21-7a27e6491452>", line 1, in <module>
runfile('/home/****/Desktop/working/survival10.py', wdir='/home/****/Desktop/working')

File "/home/****/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

File "/home/****/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "/home/****/Desktop/working/survival10.py", line 16, in <module>
book = xlrd.open_workbook("lung.xlsx")

File "/home/****/anaconda3/lib/python3.6/site-packages/xlrd/__init__.py", line 150, in open_workbook
raise XLRDError('Openoffice.org ODS file; not supported') # in the xlsx's case

XLRDError: Openoffice.org ODS file; not supported

然后我将文件从 ods 类型更改为 xlsx 类型并编码。

book = xlrd.open_workbook("lung.xlsx")

但发生了同样的错误。 该文件的通行证是“/home/****/Desktop/working”

我正在使用 Anaconda3,Python 3.6 并且已经安装了模块“xlrd”。

请告诉我这是什么问题。

【问题讨论】:

  • 1.阅读图书馆的文档是必不可少的; xlrd 读取“...来自 Excel 电子表格的数据(.xls 和 .xlsx,2.0 版以上)”并且没有提及 .ODS anywhere。 2. 您的措辞“我将文件从 ods 类型更改为 xlsx 类型”强烈建议您通过重命名文件来这样做。我说的对吗?
  • ods 格式不是 Excel 文件...
  • 感谢您的友好回答。从那时起,我一直在尝试做一些事情。我将原始数据作为 csv 文件导入而没有重命名,或者我更改了文件样式。但我不能使用“xlrd”包。我听说最近很多人在想要导入 csv 或 xlrd 文件时使用“pandas”而不是“xlrd”。所以我放弃了使用 xlrd 并开始使用 pandas,然后我成功了。恐怕我的“xlrd”问题是什么问题仍然未知。

标签: python python-3.x xlsx xlrd ods


【解决方案1】:

这是使用 Pandas 的一个不错的选择,它是处理表格数据的好方法。

只需安装odfpypandas 软件包(使用pip install ... 或等),然后使用带有engine='odf' 选项的Pandas 的read_excel() 功能。例如:

import pandas as pd
df=pd.read_excel('lung.ods', engine='odf')

https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#opendocument-spreadsheets

【讨论】:

    【解决方案2】:

    .ods 后缀表示您的电子表格文件是使用 OpenOfficeLibreOffice 创建的。

    你有两个选择:

    您可以在 OpenOffice/LibreOffice 中打开文件,但将其保存为 Excel 文件(另存为..。之后您应该能够使用 xlrd 处理保存为文件。

    或者,您不使用 xlrd,而是寻找可以处理 .ods 文件的 Python 包。你可能想搜索https://pypi.org/

    【讨论】:

      猜你喜欢
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      相关资源
      最近更新 更多