pythonでフォルダ内のファイル名をrenameして整理したメモ

  • 28
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

本当はワンライナーで書いてみたかったが出来なかった。
macのrenameはLinuxのとかは挙動が違うようで良く分からなかった。

今回の想定とした例文はスク水画像フォルダ内のjpg画像だけをrenameを。

rename.py
#!/usr/bin/env python
# coding: UTF-8
import sys
import os
import re
a = 1
#指定する画像フォルダ
files = os.listdir('/Users/hage/Pictures/sukumizu/')
for file in files:
    jpg = re.compile("jpg")
    if jpg.search(file):
        os.rename(file, "image%06d.jpg" %(a))
        a+=1
    else:
        pass

今回は大雑把にjpg画像だけをターゲットにした書き方です。searchをsukimaとかにして。

もし、この上記コードご使用される際は一応動作確認してからお願いします。
確認されたかどうかに関わらず画像が消えてしまったなどの現象に責任を負いません。

おそらくテストする場合はこんな感じで
touch vip.jpg sukima.jpg futaba.jpg ookami.jpg
適当に画像のない使い捨てフォルダ内にダミー用ファイルを用意されて挙動をご確認下さいませ。

SCPで画像転送

python内でscpコマンドから画像転送

o.py
#!/usr/bin/env python
# coding: utf-8

import os,sys,re,shutil,pexpect,datetime

s = '転送先サーバ'
u = 'ログインユーザー名'
d = '保存先ディレクトリ'
r = '転送先のhttpから始まる画像保存場所'
#基本的にSSをその場で上げることが目的なのでウチではDesktopがそうです。
p = '転送元の画像保存場所'
t = datetime.datetime.now()
#SSがScrから始まる名前なので
i = re.compile("^Scr")

#タイムスタンプを付与する準備
stamp = "{0:02d}".format(t.month) + "{0:02d}".format(t.day) + \
        "{0:02d}".format(t.hour) + "{0:02d}".format(t.minute)
#print stamp
files = os.listdir('/画像のあるディレクトリ/')
for file in files:
    if i.search(file):
        obj = file
obj = p+obj

shutil.copyfile(obj, '%simg%s.png' % (p,stamp))
scp=pexpect.spawn('scp -p %simg%s.png %s@%s:%s' %(p,stamp, u,s, d))
scp.interact()
#画像保存先を出力
print r + 'img%s.png' % stamp

足りないものはpipやeasy-installで。
なるべくSS上げる時は分散させずに一箇所に(なるべくは自分の管理の及ぶ場所に)あげようとしたのがアレです。

SNSとかで炎上した時にあちこちに画像を上げていると何かと不便ですからね!!!