u012550037
宇宙全能王
采纳率100%
2018-11-05 09:53

xlwings读写多个excel为什么时快时慢?

已采纳

运行以下代码,正常是5秒就读写好了一个excel,但是有时候读写一个excel文件要20分钟,为什么会出现时快时慢的问题呢?

import xlwings as xw

def func(file):
    app = xw.App(visible=False, add_book=False)
    wbk = app.books.open(file)

        #读写excel

        wbk.save()
        app.kill()

files = ['a.xlsx','b.xlsx'] #这里有若干文件,我的大概20个
for file in files:
    func(file)
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • weixin_39416561 lyhsdy 3年前

    1.试下在save和kill之间加上延时
    2.将kill 换成 quit()试试

    点赞 1 评论 复制链接分享
  • oXuMing idonotknowo 10月前

    app = xw.App(visible=False, add_book=False)这句运行慢,把这句单独提出来。

    import xlwings as xw
    
    
    def func(app, file):
        wbk = app.books.open(file)
        # 读写excel
        wbk.save()
    
    
    files = ['a.xlsx', 'b.xlsx']  # 这里有若干文件,我的大概20个
    app = xw.App(visible=False, add_book=False)
    for file in files:
        func(app, file)
    app.kill()
    
    
    点赞 1 评论 复制链接分享
  • wangweiggsn 硅谷少年 2年前

    基于com的需要逐个打开关闭文件,很慢,推荐用openpyxl读取,用xlsxwriter写入。我亲测过,8876个文件,平均每个文件1M左右,同一台电脑,效率差91倍!!

    点赞 评论 复制链接分享

相关推荐