目前,我正在读取所有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
使用异常应该起作用:
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')