Python 运行循环时跳过并标识受密码保护的excel文件

Python 运行循环时跳过并标识受密码保护的excel文件,python,pandas,Python,Pandas,我们正在开发一个脚本,该脚本将占用大量文件并将它们合并到一个数据帧中。不幸的是,当有密码保护的文件时,我们遇到了循环停止的问题。我想知道的是,如何跳过受密码保护的excel文件,并让脚本告诉我哪些文件受密码保护 df_list = [] allfiles = glob.glob(path) for xlsx in allfiles: temp_df = pd.read_excel(xlsx) df_list.append(temp_df) 如果存在受密码保护的excel文档,则会弹出

我们正在开发一个脚本,该脚本将占用大量文件并将它们合并到一个数据帧中。不幸的是,当有密码保护的文件时,我们遇到了循环停止的问题。我想知道的是,如何跳过受密码保护的excel文件,并让脚本告诉我哪些文件受密码保护

df_list = []
allfiles = glob.glob(path)

for xlsx in allfiles:
  temp_df = pd.read_excel(xlsx)
  df_list.append(temp_df)

如果存在受密码保护的excel文档,则会弹出一个错误,说明“BadZipFile”。由于有数百个文件,我们必须逐个打开它们,以确定哪些文件具有密码。当您要处理异常时,请考虑try/except:

以下是一个可能的解决方案:

df_list = []
allfiles = glob.glob(path)
protected_files=[]

for xlsx in allfiles:
    try:
        temp_df = pd.read_excel(xlsx)
    except BadZipfile:
        protected_files.append(xlsx)
    else:
        df_list.append(temp_df)

protected\u files
列表将包含受保护的文件

对于这种情况,为什么不使用普通的
try/except
错误处理?