2017-07-11 6 views
0

Pyton> = 3.5の場合、再帰的検索がサポートされています。私はこれをやろうとしているが、成功していない。だから、イメージは間違いなくありますPython3.5再帰的なグロブが一致するファイルを表示しない

/Volumes/user/TEST/ 
└── [NAME]john\ doe,\ peter\ griffin\ -\ sample\ video[29.06.17][1080]{user} 
    ├── [NAME]john\ doe,\ perter\ griffin\ -\ sample\ video[29.06.17][1080]{user}.mp4 
    ├── [NAME]john\ doe,\ peter\ griffin\ -\ sample\ video[29.06.17][Hi-Res] 
    │   ├── 583a6ea574035-img-8399.jpg 
    │   ├── 583a6eb9681c0-img-8401.jpg 
    │   ├── 583a6eb9e53e1-img-8402.jpg 
    │   ├── 583a6ecad078d-img-8404.jpg 
    │   ├── 583a6ecd207ed-img-8403.jpg 
    │   ├── 583a6edb7348c-img-8405.jpg 
    │   ├── 583a6ede1cbfa-img-8406.jpg 
    │   ├── 583a6eeb294a9-img-8407.jpg 
    │   ├── 583a6eee94a45-img-8408.jpg 
    │   ├── 583a6efb2389a-img-8409.jpg 
    │   ├── 583a6f01a78ae-img-8410.jpg 
    │   ├── 583a6f0daea30-img-8411.jpg 
    │   ├── 583a6f1301e3c-img-8412.jpg 
    │   ├── 583a6f1ec07d8-img-8413.jpg 
    │   ├── 583a6f240d4ce-img-8414.jpg 
    │   ├── 583a6f306f517-img-8415.jpg 
    │   ├── 583a6f36def7a-img-8416.jpg 
    │   ├── 583a6f4280706-img-8417.jpg 
    │   ├── 583a6f48b8b11-img-8418.jpg 
    │   ├── 583a6f55160cc-img-8419.jpg 
    │   ├── 583a6f5b7fb35-img-8420.jpg 
    │   ├── 583a6f68aad40-img-8423.jpg 
    │   ├── 583a6f6da8c0b-img-8424.jpg 
    │   ├── 583a6f7b9e1d6-img-8425.jpg 
    │   ├── 583a6f8069e59-img-8426.jpg 
    │   ├── 583a6f8e9891e-img-8427.jpg 
    │   ├── 583a6f9427910-img-8428.jpg 
    │   ├── 583a6fa45e3f4-img-8429.jpg 
    │   ├── 583a6fa96b182-img-8430.jpg 
    │   ├── 583a6fb935bf2-img-8431.jpg 
    │   ├── 583a6fca7a0c9-img-8433.jpg 
    │   ├── 583a6fcbab549-img-8434.jpg 
    │   ├── 583a6fdcf2812-img-8435.jpg 
    │   ├── 583a6fde5ee86-img-8436.jpg 
    │   ├── 583a6fee54d9b-img-8437.jpg 
    │   ├── 583a6ff0acb76-img-8438.jpg 
    │   ├── 583a7000ecd80-img-8439.jpg 
    │   ├── 583a70026c325-img-8440.jpg 
    │   ├── 583a701319c22-img-8441.jpg 
    │   ├── 583a701457221-img-8443.jpg 
    │   ├── 583a7027e8531-img-8444.jpg 
    │   ├── 583a7029f0e7c-img-8445.jpg 
    │   ├── 583a703d6c3c9-img-8446.jpg 
    │   ├── 583a703f879f5-img-8447.jpg 
    │   ├── 583a7051ae77a-img-8448.jpg 
    │   ├── 583a705b588c3-img-8449.jpg 
    │   ├── 583a706d40811-img-8450.jpg 
    │   ├── 583a7076cb3e9-img-8451.jpg 
    │   ├── 583a70894ec35-img-8452.jpg 
    │   ├── 583a70964fbcb-img-8453.jpg 
    │   ├── cai-8498-pa.jpg 
    │   └── cai-8498-pt.jpg 
    ├── [NAME]john\ doe,\ peter\ griffin\ -\ sample\ video[29.06.17][Hi-Res].jpg 
    └── cover.png 

ここでは、私のディレクトリ構造を見ることができます。

def count_images(folder): 
    """ 
    Count the number of images in a folder. 
    :param folder: Folder to count the images 
    :return: Number of photos 
    """ 
    print(folder) 
    files = [file for file in glob.glob(folder + '/**/*.jpg', recursive=True)] 
    print(files) 
    return len([file for file in glob.glob(folder + '/**/*.jpg', recursive=True)]) 

しかし、それだけで、次の出力: は今ここにいくつかの理由で、働いていないことを、私の方法であり、それは、非常にイライラになってきている

/Volumes/user/TEST/[NAME]john doe, peter griffin - sample video[29.06.17][1080]{user}/ 
[] 

私が何を見ていないように私間違っている。

+0

てみ ' '/ **/**/* jpg'' –

+0

@違いはありませんcᴏʟᴅsᴘᴇᴇᴅ。 – rhillhouse

答えて

0

だから問題が見つかりました。 globモジュールでは、ファイル名に特定の文字(この場合は[])の問題があります。 glob.escape()を使用すると、ファイル名でこれらの文字をエスケープできます。

ので、最終的な機能は、次のようになります。

def count_images(folder): 
    return len([file for file in glob.glob(glob.escape(folder) + '/**/*.jpg', recursive=True)]) 
関連する問題