Python Openpyxl Excel打开操作 zipfile 错误解决:zipfile.BadZipFile: File is not a zip file(转)
2021/8/26 17:06:22
本文主要是介绍Python Openpyxl Excel打开操作 zipfile 错误解决:zipfile.BadZipFile: File is not a zip file(转),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
错误描述
使用openpyxl新建workbook并执行操作,在从某文件目录load workbook时,报错zipfile.BadZipFile: File is not a zip file
Traceback (most recent call last): File "*.py", line 49, in * wb = load_workbook(filename) File "/home/*/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 316, in load_workbook data_only, keep_links) File "/home/*/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 124, in __init__ self.archive = _validate_archive(fn) File "/home/*/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 96, in _validate_archive archive = ZipFile(filename, 'r') File "/usr/lib/python3.6/zipfile.py", line 1131, in __init__ self._RealGetContents() File "/usr/lib/python3.6/zipfile.py", line 1198, in _RealGetContents raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip file
原因
出现错误的直接原因是,试图打开一个之前没有close的表格文件。这项错误操作可能是因为这些原因引起的:
之前的进程中,打开的workbook没有正常close,导致出现了额外的临时文件,在试图打开这些临时文件时会出现错误;
之前的workbook在save时,对于已有文件的覆盖方式不对。
也有可能是其他错误,但是不重要,看解决方法,可以从根源上避免这一类关于load/save的错误。
解决
在写代码的时候一定要未雨绸缪,用安全的方式打开和退出excel文件,就可以从根源上避免上面的这一类关于load/save的错误。
安全地打开excel
打开文件时,用以下方式打开excel:如果已经存在原文件,就直接load;如果不存在,就新建workbook准备最后save.
import os from openpyxl import Workbook from openpyxl import load_workbook if os.path.exists(new_filename): new_wb = load_workbook(new_filename) else: new_wb = Workbook()
安全地保存为excel
- 首先,文件一旦用完就要记得退出。
- 其次,退出文件时,对所有的workbook,如果需要save就save,如果不需要save(只读)就一定要close
wb.save(filename) # 对需要保存写入内容的workbook wb.close() # 对程序中只读的workbook
————————————————
版权声明:本文为CSDN博主「WinterShiver」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/WinterShiver/article/details/103443300
这篇关于Python Openpyxl Excel打开操作 zipfile 错误解决:zipfile.BadZipFile: File is not a zip file(转)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南