0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonで画像を読み込み⇒別名再保存するツールを作った話

Last updated at Posted at 2020-07-11

#概要
友人「大量の画像ファイルが入ったフォルダから、適当な画像ファイルをピックアップして、フォルダと同じ階層にコピーしたうえで、画像ファイルの名前をフォルダ名に変更するツール作って」
私「おかのした」

#仕様

###1.こんなフォルダがあったとします
「KizunaAI」「MiraiAkari」等の各フォルダには大量の画像が入っており、001~のようなファイル名が付いています

対象フォルダ
images
  KizunaAI
    001.jpg
    ....ipg
  
  MiraiAkari
    001.jpg
    ....ipg
  ....

###2.それをこうします
各画像フォルダから適当な画像ファイルをコピーし、フォルダと同じ階層に置いたうえで、ファイル名を所属していたフォルダの名前にリネームします。

対象フォルダ
images
  KizunaAI
    001.jpg
    ....ipg
  KizunaAI.jpg
  MiraiAkari
    001.jpg
    ....ipg
  MiraiAkari.jpg
  ....

以上!!!! 

#実装
ひとまず手持ちのAnaconda環境で実装しました。
私「ずいぶん改まって頼んで来たからどんな深刻な内容かと思いきや」
キャプチャ.PNG

main.py
from PIL import Image
import os, glob

rootpath = "./images"
files = os.listdir(rootpath)
#rootpath配下の全ディレクトリを取得
dirs = [f for f in files if os.path.isdir(os.path.join(rootpath, f))]
#せっかくなのでコンソールに表示
print(dirs)    # ['dir1', 'dir2']
#全ディレクトリに対して実行
for dir in dirs :
    #全ファイルをスキャン
    files = glob.glob(rootpath +"/"+ dir + "/*.*")
    #拡張子を引っこ抜く
    targetFile = files[0]
    root, ext = os.path.splitext(targetFile)
    #画像オープン
    img = Image.open(targetFile)
    #リネームしてルートパス直下に保存
    img.save(rootpath +  '/' + dir + ext)

#EXEにする
Anacondaは少々面倒くさいので、EXE化してワンクリックで動くようします
####1.Pyinstallerのインストール
Anaconda の仮想環境ごとEXEにしてくれる凄いツールです。つまりこいつがあればPython環境がない人でも動かせるらしいです。
1KBもないコードに対して300MB越えのEXEを吐き出す困ったちゃんですが、便利なので許します。

AnacondaPronpt
conda install -c conda-forge pyinstaller

余談ですが私はcondaでインストールするほうが好きです。

####2.EXEにする
あくしろよ

AnacondaPronpt
pyinstaller main.py --onefile

私「できた(バグ無しとは言ってない)」
友人「やりますねぇ!」
#その他
友人「フォルダ名に"[]"あると対応してくれないんですがそれは」
私「ファ!?」
友人「まあちょっとしかないからここは手動でやるわ」
私「ぐう聖」

暇があったらこの不具合対応版も記事にします

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?