0

我正在尝试搜索 excel 文档,如果 mp3 文件的名称在 excel 文档中匹配,它会打印出找到名称实例的行。

这就是我所拥有的:

from mutagen.easyid3 import EasyID3
from openpyxl import load_workbook
import glob
import re
import os
for name in glob.glob('*.mp3'):
  audio = EasyID3(name)
  wb = load_workbook('xl.xlsx')
  sh = wb.get_sheet_by_name('Russian')
  for row in sh:
    if row.value == name:
      print row.number
4

1 回答 1

2

首先,您正在加载工作簿并为每个.mp3文件查找工作表。将该代码移出循环。

第二个问题是您尝试迭代 worksheet sh,这是不可迭代的。

第三个问题是你测试row.value同名,你可能想要sh.cell[0].value

您的代码应该看起来更像:

from mutagen.easyid3 import EasyID3
from openpyxl import load_workbook
import glob
import re
import os
wb = load_workbook('xl.xlsx')
sh = wb.get_sheet_by_name('Russian')
for name in glob.glob('*.mp3'):
    audio = EasyID3(name)
    for row_index in range(sh.get_highest_row()):
        if sh.cell(row=row_index, column=0).value == name:
            print(row_index)

正如@Bill Kidd 所指出的,在 openpyxl 2.4.2 中,您必须替换.get_highest_row().max_row(没有大括号!)。

于 2013-03-19T06:53:31.613 回答