我如何删除带有 python 的平面文件中的特定 sheet?

How do i delete a particular sheet in a flat file with python?

我正在尝试编写一个循环来浏览我的目录以查找以特定文件名 ('TVC') 开头的文件并删除该文件中的特定 sheet。在下面的例子中,'Opt-Ins' 是我要删除的 sheet 之一的名称

我的尝试-

import os
path = 'C:/Users/grr/Desktop/autotranscribe/python/Matching'
files = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path,i)) and \
         'TVC' in i]
    
    from openpyxl import load_workbook

wb = load_workbook(files)
if 'Opt-Ins' in wb.sheetnames:
    wb.remove(wb['Opt-Ins'])
wb.save(files)

TypeError: expected str, bytes or os.PathLike object, not list

我只想删除特定的 sheet。我该怎么做?

问题是您正试图在 文件名列表:

上调用 load_workbook
wb = load_workbook(files)

您需要遍历文件,运行您在循环中的每个文件上的代码:

for filename in files:
    wb = load_workbook(filename)
    ...  # rest of your code here

看来您确实了解循环,所以我认为这只是一个疏忽。编程时不要忘记休息。根据我的经验,当我长时间不间断地工作时,犯这种错误的几率会大大增加。