xlrd を使用して 2 つの .xls シートの値を比較するスクリプトがあります。デフォルトでは、類似点を探すことができ、それらを txt ファイルに書き込みます。引数に を渡すと、各 .xls に固有のデバイスを探して、それらを txt ファイルに書き込むことができます。現在、各 .xls の行を反復処理し、2 つのファイル間に類似性が見つかったときにフラグを True としてマークします。フラグが False とマークされている場合、最初のシートからのみホストが書き込まれます。フラグ付きのコードは次のとおりです。
else:
for row1 in range(sheet1.nrows):
inboth = False
for row2 in range(sheet2.nrows):
if sheet2.row_values(row2)[0].split(".")[0] == sheet1.row_values(row1)[0].split(".")[0]:
inboth = True
if not inboth:
outfile.write(sheet1.row_values(row1)[0].split(".")[0] + ",File1\n")
for row2 in range(sheet2.nrows):
inboth = False
for row1 in range(sheet1.nrows):
if sheet1.row_values(row1)[0].split(".")[0] == sheet2.row_values(row2)[0].split(".")[0]:
inboth = True
if not inboth:
outfile.write(sheet2.row_values(row2)[0].split(".")[0] + ",File2\n")
「inboth」フラグを使用せずにこれを行うより効率的な方法はありますか? 両方のシートを 2 回繰り返す必要がない解決策はありますか?