鱼C论坛

 找回密码
 立即注册
查看: 1914|回复: 5

python代码一直运行正常,突然就报错,帮忙看下咋回事

[复制链接]
发表于 2023-6-26 14:17:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
path='C:/Users/EDY/Desktop/无密文件'
files_list=os.listdir(path)    #  获取目标文件夹内各文件的名称
new_wb=Workbook()    #  新建表格
new_ws=new_wb.active    #  获取工作簿
for file in files_list:    #  循环获取各表的名称
    file_path=path+'/'+file    #  获取表格的路径
    wb=load_workbook(file_path)    #  打开表格
    ws=wb.active    #  打开工作簿
    for row in ws.iter_rows(min_row=15,values_only=True):    #  循环获取表头以外的表格内容,从第15行开始
        new_ws.append(row)    #  获取的内容写入新表
for i in range(2,new_ws.max_row,1):     #  从第2行开始到最后一行逐行进行#删除指定文字
    if new_ws.cell(row=i,column=1).value=='保单号':     #  如果该行第一列值为‘序号’
        new_ws.delete_rows(i)     #  则删除该行
new_wb.save("最终完整版/1  (多工作簿合并一个工作表) .xlsx")    #  保存表格
print('------一、多工作簿合并一个工作表')



上面是我的代码,下面是报错的,之前代码一直运行正常,最近不知怎么回事,突然报错,帮忙看一下原因

File "c:\Users\EDY\Desktop\python\最终完整版\最终完整版第三版(无密码直接出台账) copy.py", line 30, in <module>
    wb=load_workbook(file_path)    #  打开表格
       ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\openpyxl\reader\excel.py", line 344, in load_workbook   
    reader = ExcelReader(filename, read_only, keep_vba,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\openpyxl\reader\excel.py", line 123, in __init__        
    self.archive = _validate_archive(fn)
                   ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\openpyxl\reader\excel.py", line 95, in _validate_archive
    archive = ZipFile(filename, 'r')
              ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\zipfile.py", line 1299, in __init__
    self._RealGetContents()
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\zipfile.py", line 1366, in _RealGetContents
    raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file
PS C:\Users\EDY\Desktop\python>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-26 14:21:03 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-6-26 14:23 编辑

根据错误信息显示,报错内容为"zipfile.BadZipFile: File is not a zip file",意味着你尝试打开的文件不是一个有效的zip文件。

可能的原因是:

  • 文件路径错误:请确保你提供的file_path是正确的,并且指向一个存在的文件。
  • 文件格式错误:load_workbook()函数只能读取Excel文件(.xlsx、.xlsm、.xltx、.xltm),如果你提供的文件不是这些格式,会导致报错。


解决方法:

  • 确认文件路径:检查一下file_path的值,确保它指向了一个存在的文件。
  • 检查文件格式:确认你提供的文件是一个有效的Excel文件,可以尝试手动打开该文件并验证它的格式是否正确。


因为excel文件也是可以解压的
现在你检查一下,用7zip能不能解压excel文件,或者用offiec看看xlsx文件能不能正常打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-26 14:22:19 | 显示全部楼层
根据你的错误信息,这个错误产生的原因是Python在尝试打开一个Excel文件(使用openpyxl库的load_workbook函数)时,出现了问题。这个库期望文件是一个有效的.zip文件(实际上,.xlsx文件格式本质上就是一个.zip文件),但是在你的情况下,文件可能已经损坏,或者不是一个有效的.zip/.xlsx文件。

这个错误可能有以下原因:

1. 文件可能在读取过程中被其他程序(例如Excel)打开了。请确保在运行脚本时,没有其他程序打开这些文件。
2. 文件可能已经损坏。尝试手动打开文件看是否有问题,或者重新获取这个文件。
3. 你可能尝试打开的不是.xlsx文件。 os.listdir(path) 会返回所有的文件,包括非.xlsx文件。你可以添加一个检查以确保你只尝试打开.xlsx文件。下面是一种方式:
import os
from openpyxl import Workbook, load_workbook

path = 'C:/Users/EDY/Desktop/无密文件'
files_list = os.listdir(path)    #  获取目标文件夹内各文件的名称
new_wb = Workbook()    #  新建表格
new_ws = new_wb.active    #  获取工作簿

for file in files_list:    #  循环获取各表的名称
    if not file.endswith('.xlsx'):   #  检查文件是否为.xlsx文件
        continue
    file_path = os.path.join(path, file)   #  获取表格的路径
    wb = load_workbook(file_path)    #  打开表格
    #  ...其他代码...

#  ...其他代码...

请尝试上述建议,并检查文件是否可以正常读取。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-26 14:39:36 | 显示全部楼层
代码一直没变,之前运行都正常,突然不好使了,合并的工作簿也没坏,文件名字也是对的,这种我都核对了,都没问题,输入你的代码还是报错一样的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-26 14:45:15 | 显示全部楼层
isdkz 发表于 2023-6-26 14:22
根据你的错误信息,这个错误产生的原因是Python在尝试打开一个Excel文件(使用openpyxl库的load_workbook函 ...

找到问题了,我把无密文件删除,重新建立一个文件夹就好使了,这个文件夹我没动过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-8 16:40:01 | 显示全部楼层


请确保你指定的文件路径是正确的,并且文件是有效的 Excel 文件(通常以 .xlsx 或 .xls 扩展名结尾)。另外,你还可以尝试以下几点来解决该问题:

检查文件路径:确认文件路径是否正确,包括文件名、文件后缀名等。确保文件存在并且可以被访问。

检查文件格式:确保您的文件是有效的 Excel 文件(.xlsx 或 .xls 格式)。如果文件已损坏或者不是 Excel 文件格式,可能会导致无法打开并出现上述错误。

检查文件完整性:如果文件已损坏或不完整,也可能导致无法打开并出现错误。您可以尝试使用其他工具或方法打开该文件,以验证文件的完整性。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 20:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表