使用openpyxl.load_workbook迭代目录时出现InvalidFileException错误

时间:2015-10-23 20:21:19

标签: python python-3.x openpyxl

我有一个.xls和.xlsx文件的目录我试图用openpyxl模块加载到Python中。我的代码如下:

for i in os.listdir(os.getcwd()): if i.endswith(".xls") or i.endswith(".xlsx"): wb = openpyxl.load_workbook(i)

当我运行此代码时,我收到以下错误:

raise InvalidFileException(unicode(e)) InvalidFileException: "There is no item named 'xl/styles.xml' in the archive"

我能够一次使用openpyxl成功加载这些相同的文件,但不能循环加载。

提前感谢您的帮助。

詹姆斯

2 个答案:

答案 0 :(得分:0)

试试这个 -

for i in os.listdir(os.getcwd()):
    if os.path.isfile(i):
        if i.endswith(".xls") or i.endswith(".xlsx"):
            wb = openpyxl.load_workbook(os.path.join(os.getcwd(), i))
  1. 由于os.listdir()会返回文件和目录的名称,因此最好在继续之前检查给定项目是否为文件。

  2. openpyxl.load_workbook(i)替换openpyxl.load_workbook(os.path.join(os.getcwd(), i))以传递匹配文件的绝对路径,因为相对路径有时会在文件处理中产生问题

  3. 注意:考虑更新 openpyxl 并将 .xls 扩展名更改为 .xlsx 。 xlrd 以确保与最新版本的库兼容。

答案 1 :(得分:0)

我建议你更新你的openpyxl版本。暂时不需要在档案中使用styles.xml