Home » Python » Pythonでxlsxファイルに含まれるファイル名を確認する

Pythonでxlsxファイルに含まれるファイル名を確認する

動作検証バージョン:Windows 10 + Python 3.7.3

できる 仕事がはかどるPython自動処理 全部入り。』のChapter 5「ファイルの操作と圧縮・展開」に、zipファイルの中身を確認するスクリプトが紹介されています。

まったく同じロジックで、xlsxファイルに含まれるファイル名も確認できるはずですから、試してみました。

[スポンサードリンク]

ZipFile.inforlist()からファイル名を取得するスクリプト

以下のスクリプトを実行すれば、Cドライブtempフォルダーのfoo.xlsxファイルに含まれるファイルの名前がprintされます。


import zipfile

with zipfile.ZipFile('C:\\temp\\foo.xlsx') as zf:
    for info in zf.infolist():
        print(info.filename)

できる 仕事がはかどるPython自動処理 全部入り。』のp.105に掲載されているスクリプトと、実質同じです。

zipfile.ZipFile()の引数で指定するファイルをフルパスにして、モードを指定する第2引数を省略しています。

ZipFile.namelist()を使ってファイル名を取得するスクリプト

ネットを検索してみても、なぜか上記のZipFile.infolist()を使ったコードをよく見かけるように感じますが、ファイル名のリストを作成するZipFile.namelist()を使った、以下のようなスクリプトでも、Cドライブtempフォルダーのfoo.xlsxファイルに含まれるファイルの名前をprintできます。


import zipfile

with zipfile.ZipFile('C:\\temp\\foo.xlsx') as zf:
    for name in zf.namelist():
       print(name)

先述のスクリプトではZipFile.infolist()メソッドで、Zipinfoオブジェクトを取得しているのに対し、
     for info in zf.infolist():

こちらではZipFile.namelist()メソッドで直接ファイル名のリストを取得しています。
     for name in zf.namelist():

Zipinforオブジェクトを取得した場合にはZipinfo.filenameでファイル名を取得する必要があるのに対し、
     for info in zf.infolist():
         print(info.filename)

ファイル名のリストを取得した場合は、リストから要素を取得する一般的な処理だけで、ファイル名を取得できます。
     for name in zf.namelist():
        print(name)

最終更新日時:2019-08-02 10:53

[スポンサードリンク]

Home » Python » Pythonでxlsxファイルに含まれるファイル名を確認する

TrackBack:0

TrackBack URL

Home » Python » Pythonでxlsxファイルに含まれるファイル名を確認する

Copyright © インストラクターのネタ帳 All Rights Reserved.

.