仅将目录中的所有excel文件包含在特定工作表中,才将其附加到数组中

问题描述 投票:0回答:1

目前,我正在读取所有Excel文件,并将“数据”表添加到给定目录的数组中。问题是目录中的某些excel文件实际上不应存在,并且不包含“数据”表。然后,程序在遇到这种情况时就会中断。我的解决方法是在添加文件之前先打印文件名,然后手动删除文件并重新运行脚本。我尝试创建一个Sheet_check函数,如下所示,尽管这大大降低了运行时间,而且也无法按预期工作。

Q:如果存在简单/有效的方法,仅在存在特定工作表的情况下仅添加excel文件

read_files = glob.glob(os.path.join(file_path, "*.xlsx"))

file_array = []
for files in read_files:
    #Remove_password_xlsx(files, password)

    #if Sheet_check(files) == False:
        #read_files.remove(files)

    print(files)
    data = pd.read_excel(files, 'Data')
    file_array.append(data)

不工作:

def Sheet_check(filename):
    bAvailable = False
    book = load_workbook(filename)
    sheets = book.sheetnames
    for sheet in sheets:
        if sheet.upper() == "DATA":
            bAvailable = True
            break
    return bAvailable
python excel pandas append
1个回答
0
投票

使用异常应该起作用:

from xlrd import XLRDError
read_files = glob.glob(os.path.join(file_path, "*.xlsx"))

file_array = []
for files in read_files:
    #Remove_password_xlsx(files, password)

    #if Sheet_check(files) == False:
        #read_files.remove(files)

    print(files)
    try:
        data = pd.read_excel(files, sheet_name='Data')
        file_array.append(data)
    except XLRDError:
        print('No "Data" sheet')
© www.soinside.com 2019 - 2024. All rights reserved.