【Python】Googleドライブのファイル数を確認する

Googleドライブに保存したファイル数をGoogle Colaboratoryから確認する方法を紹介します

※ブラウザ上で完結したかったので、Google Colaboratoryを使いました

Googleドライブをマウントする

In [ ]:
from google.colab import drive
drive.mount('/content/drive')

以下のコマンドでマウントした”Myドライブ”の中身を確認できます

In [2]:
!ls /content/drive/My\ Drive
'Boy - 21827DeepCut_resnet50_human_dancingAug30shuffle1_103000.h5'
'Boy - 21827DeepCut_resnet50_human_dancingAug30shuffle1_103000includingmetadata.pickle'
'Boy - 21827DeepCut_resnet50_human_dancingAug30shuffle1_103000_labeled.mp4'
'Boy - 21827.mp4'
 Chainer
'Colab Notebooks'
 Cpp
 Dataset
 model.h5
 Owl_Dataset
 plot-poses
 python
 Pytorch
 ssdlite_mobilenet_v2_coco_2018_05_09.onnx
'Yoga - 445DeepCut_resnet50_human_dancingAug30shuffle1_103000_labeled.mp4'
 はやぶさの技術ノート集

ファイル数を確認したいディレクトリを指定

今回は「フクロウ用データセット」のファイル数を確認します
データセットはフクロウの種類別でフォルダ分けしてあり、中にJPGファイルが保存してあります

images
   ├─ahukono
   ├─ahurikawasimimizuku
   ├─...
   ├─uraru
In [3]:
!ls /content/drive/My\ Drive/Owl_Dataset/train/images/
ahukono		      kinnme		       onaga
ahurikawasimimizuku   kokinnmehukurou	       oohukurou
akasuzume	      kuroobihinahukurou       sabakukonohazuku
americawasimimizuku   kurowasimimizuku	       siberiannwasimimizuku
anahori		      megane		       sirohukurou
benngaruwasimimizuku  mennhukurou	       supikkusu
chakomiri	      morihukurou	       tatejimahukurou
indokokinnme	      nisemenn		       torahuzuku
inndexiannsukoppuowl  nisiamerikaookonohazuku  uraru
karahuto	      nyujilandaobazuku        yurasiawasimimizuku

Pythonで特定フォルダのファイル数をカウント

以下のコードでahukonoフォルダ内のファイル数をカウントできます

In [4]:
import os

# ファイル数を調べたいフォルダのパス
path = "/content/drive/My Drive/Owl_Dataset/train/images/ahukono" 

# フォルダ内の全ファイル名をリスト化
files = os.listdir(path)

# リストの長さ(ファイル数)を取得
count = len(files)

# ファイル数を確認
print(count)
1625

サブフォルダのファイル数もカウント

特定フォルダ内のファイル数を確認するだけなら、さきほど紹介した方法で良いのですが…
今回は以下のようなツリー構造の全ファイル数をカウントしたいので、さきほどのコードを少し改良します

images
   ├─ahukono
   ├─ahurikawasimimizuku
   ├─...
   ├─uraru

以下のコードで親フォルダ(今回の例ではimages)直下の各フォルダ内のファイル数を確認できます

In [5]:
import os

path = "/content/drive/My Drive/Owl_Dataset/train/images" 

total = 0
for dir_path in os.listdir(path):
    target_dir = path + "/" + dir_path
    files = os.listdir(target_dir)
    count = len(files)
    total = total + count
    print(dir_path, ":", count)
print("file total:", total)
anahori : 1291
benngaruwasimimizuku : 1240
akasuzume : 381
chakomiri : 1544
ahurikawasimimizuku : 1321
ahukono : 1625
americawasimimizuku : 1218
nisemenn : 1130
kurowasimimizuku : 781
megane : 1375
karahuto : 1169
mennhukurou : 1100
kokinnmehukurou : 1595
morihukurou : 875
kinnme : 858
inndexiannsukoppuowl : 1329
onaga : 803
nyujilandaobazuku : 890
nisiamerikaookonohazuku : 1161
sirohukurou : 1478
torahuzuku : 948
uraru : 1437
sabakukonohazuku : 282
yurasiawasimimizuku : 1336
tatejimahukurou : 1018
supikkusu : 1543
siberiannwasimimizuku : 1087
oohukurou : 922
indokokinnme : 610
kuroobihinahukurou : 63
file total: 32410

フォルダ名 : ファイル数 を表示できました。

(例)

anahori : 1291

全ファイル数の合計も表示させました。

file total : 32410

以上