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)

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

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()

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