xlrd循环通过文件夹中的多个工作簿

我正在处理一个脚本,该脚本从一个文件夹中的多个Excel工作簿中提取某些数据行(关键工作表在每个工作簿中都有相同的名称)。 此代码似乎只处理/打印文件夹中第一个文件的结果:

import os import xlrd for root, dirs, files in os.walk('/Users/123/Desktop/drivingtests'): xlsfiles=[ _ for _ in files if _.endswith('.xlsx') ] for xlsfile in xlsfiles: workbook = xlrd.open_workbook(os.path.join(root,xlsfile)) worksheet = workbook.sheet_by_name('Sheet1') for row in range(worksheet.nrows): workbook = xlrd.open_workbook(os.path.join(root,xlsfile)) worksheet = workbook.sheet_by_name('Sheet1') if worksheet.row_values(row)[0] == 'bike': print worksheet.row_values(row) 

应该做些什么来让脚本处理文件夹中的每个工作簿?

答案是“凹痕很重要”。 当像下面的代码一样缩进时,它循环遍历文件夹中的所有文件。

 import os import xlrd for root, dirs, files in os.walk('/Users/123/Desktop/drivingtests'): xlsfiles=[ _ for _ in files if _.endswith('.xlsx') ] for xlsfile in xlsfiles: workbook = xlrd.open_workbook(os.path.join(root,xlsfile)) worksheet = workbook.sheet_by_name('Sheet1') for row in range(worksheet.nrows): if worksheet.row_values(row)[0] == 'bike': print worksheet.row_values(row)