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ファイルのシートを見つけます。そのコードをループの外に移動します。

2番目の問題は、ワークシートを反復しようとすることですsh。これは反復可能ではありません。

row.value3番目の問題は、おそらく必要な場所で、同じ名前でテストすることです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 に答える