和歌山産pythonプログラマのブログ

和歌山出身プログラマmatsu7874が書いています。Python3と時々C++11を書きます。

複数のフォルダの中に入っている画像ファイルを一つのフォルダにコピーする

やること

複数のフォルダの中に入っている画像ファイルを一つのフォルダにコピーする。

なぜやることになったのか

サークルのホームページのデータが1画像ファイルごとに別のフォルダに保存されていて、手動で管理するのが非常に不便だったため。

解決方法

os.listdir()でディレクトリ一覧を取ってきて、shutil.copy()で目的のファイルにコピーする。

import os
import shutil
files = os.listdir()
for file in files:
    print(file, '>>', end='')
    if '.' not in file:
        f = os.listdir(file)
        if len(f)>0:
            shutil.copy(file+'/'+f[0],'./copies/'+file+f[0])
        print(f)

f[0]となっているのはそれぞれのフォルダには必ず1枚だけjpgファイルが入っているから。