DataFrame写入excel时,Explicit close() may be required for workbook?

发布于 2022-09-05 07:49:59 字数 1450 浏览 11 评论 0

因为平时做了很多excel要分到不同的人手中,就用pandas做了一个excel拆分的文件。
报错相关的代码如下:


for i in city_set:
    print(i)
    if os.path.exists(to_filepath+to_filename+'_%s.xlsx' % i ) == True:
        print('%s同名文件已存在' % i)
        continue
    print(i,'拆分中')
    writer = pd.ExcelWriter(to_filepath+to_filename+'_%s.xlsx' % i)
    for j in data.keys():
        data_tmp = data[j][data[j].iloc[:,0]==i]
        if len(data_tmp.index)==0:
            data_tmp=pd.DataFrame({j:[i,"没有数据"]}) 
        data_tmp.to_excel(writer,sheet_name = j)      

开始用的spyder,只是会缺失文件。
pycharm提示的错误码为:

Exception ignored in: <bound method Workbook.__del__ of <xlsxwriter.workbook.Workbook object at 0x000001D5FCCEDA58>>
Traceback (most recent call last):
  File "C:\Program Files\Anaconda3\lib\site-packages\xlsxwriter\workbook.py", line 149, in __del__
    raise Exception("Exception caught in workbook destructor. "
Exception: Exception caught in workbook destructor. Explicit close() may be required for workbook.

这是pandas的源码:

    def __del__(self):
        """Close file in destructor if it hasn't been closed explicitly."""
        try:
            if not self.fileclosed:
                self.close()
        except:
            raise Exception("Exception caught in workbook destructor. "
                            "Explicit close() may be required for workbook.")

请大神指教。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苏辞 2022-09-12 07:49:59

添加writer.save()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文