【问题标题】:xlrd to loop through multiple workbooks in a folderxlrd 循环浏览文件夹中的多个工作簿
【发布时间】:2018-08-23 06:32:11
【问题描述】:

我正在编写一个脚本,该脚本从文件夹中的多个 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)  

如何让脚本处理文件夹中的每个工作簿?

【问题讨论】:

    标签: python excel xlrd


    【解决方案1】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2018-05-27
      • 2018-06-04
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多