For 循环跳过最后一个列表

For Loop Skips last List

我有一个 for 循环语句,当执行时总是创建比列表少一个 excel。但是,当使用 if 语句的第一部分时(xlwings,修改现有的 excels 它工作正常)想法?

names= list(df_ora['XCODE'].unique())
for prov in names:
    #for each matching agency code we create a df2
    df2 = df_ora[df_ora['CODE'].isin([prov,'00000'])]
   # create a filename to verify the excel exisits
    filename = (dir_src  + '\' + str(prov) + '_' + 'Claims' + '.xlsx')
    if os.path.isfile(filename):
        wb = xw.Book(filename)
        ws = wb.sheets['DATA']
        ws.clear_contents()
        ws.range('A1').options(index=False).value = df2
        ws.autofit()
        wb = xw.Book(filename)
        wb.save()
        xw.apps[0].quit()
        counter = counter + 1
    else:
        writer = pd.ExcelWriter(filename, engine='xlsxwriter')  
        df2.to_excel(writer, sheet_name='DATA',index=False)
        counter = counter + 1

尝试在 df2.to_excel(writer, sheet_name='DATA',index=False) 之后立即关闭编写器或 writer.save()。在明确关闭或超出范围之前,作者的内容可能不会刷新到磁盘。