Pythonの標準ライブラリに含まれるpprint.pprint()関数が、リストやタプルの確認に便利です。
リストを出力した場合
たとえば、
「SheetA」「SheetB」「SheetC」「SheetD」
の4枚のワークシートが存在するsample.xlsxをCドライブtempフォルダーに置いて、拙著『VBAユーザーのためのPython超入門: あるいはPythonからVBAを学び直す本』でも多用しているPython標準のIDLEで以下のコードを実行すると、
import openpyxl
bk = openpyxl.load_workbook(r'c:\temp\sample.xlsx')
print(bk.worksheets)
下図のように出力されます。
出力結果の全体がカギ括弧 [ ] で括られていることから、Workbook.worksheets属性の戻り値がリストであることがわかり、その要素がいずれもWorksheet型で「SheetA」「SheetB」「SheetC」「SheetD」といった名前であることを読み取れます。
pprint.pprint()関数でリストを出力した場合
先ほどのコードにつづけて、以下のコードを実行すると、
import pprint
pprint.pprint(bk.worksheets)
下図のように出力されます。
リストの要素ごとに改行されているため、先ほどのprint()関数の結果より明らかに見やすく感じます。
pprintモジュールは標準ライブラリに含まれていますからインストールは不要ですが、importは必要です。
入れ子構造のタプルを出力した場合
入れ子構造になった場合にpprint.pprint()関数の便利さが、より際立ちます。
先ほどのコードにつづけて、以下のコードを実行すると、
print(bk.worksheets[0]['A1:B3'])
下図のように出力されます。
sample.xlsxブックの、1枚目のワークシートのA1:B3セルを取得・出力した状態です。
先頭に「((<Cell 」と開くカッコ ( が2つ出力されているため、タプルの中にタプルがあることはすぐ読み取れますが、どういう構造になっているか、すぐにはわかりません。
つづけて、以下のコードを実行すると、
pprint.pprint(bk.worksheets[0]['A1:B3'])
下図のように出力されます。
先ほどのprint()関数を使った出力よりも、どういう構造なのかがよくわかります。
最終更新日時:2023-01-12 16:16