アーカイブ

2009 年 4 月 のアーカイブ

F-Spotなどで、重複インポートしてしまった画像を削除する

2009 年 4 月 23 日

デジカメなどで撮影した画像をアルバム化するツールとしてF-Spotは便利なのですが、

インポートの際に、誤って過去にインポートしたファイルをコピーインポートしてしまうと、

ファイルが重複してしまいます。

同じ年月日で、a.jpgと言うものがあったとすると、コピーインポートしてしまった結果、

a-1.jpgやa-2.jpgといったファイルができてしまいます。

そこで、 F-Spotのデータ全体をスキャンして、重複ファイルを削除するpythonスクリプトを作りました。

適当なファイル名を付けて保存し、読み込みと実行属性を付けてください。

#! /usr/bin/env python
# -*- coding:UTF-8 -*-
#
# 概要:
# f-spotなどで画像を重複で取り込んでしまったときに、
# 重複ファイルを削除する
#
# 処理内容:
#  -???というファイル名がある場合(???は1桁以上の数字)、
# それを取り除いたファイルが同じディレクトリに存在し、
# かつファイルサイズが同じなら削除する

# モジュールの読み込み
import re   # 正規表現用
import os   # ファイル・ディレクトリアクセス用
import sys  # コマンドライン引数の取得用

# 引数チェック
if len(sys.argv) < 2:
 print "usage: %s path" % sys.argv[0]
 quit()

# ディレクトリの存在チェック
rootpath = sys.argv[1]
if not os.access(rootpath, os.F_OK):
 print "dirctory %s is not found." % rootpath
 quit()

# ディレクトリ内を全走査
print "start"
for root, dirs, files in os.walk(rootpath):
 # ファイル名を得る
 for name in files:
 # -???.というファイル名を検索
 if re.search("-\d+\.", name) != None:
 print root, name
 path = os.path.join(root, name)
 # -???を削除したファイル名が存在するかチェック
 orgname = re.sub("-\d+\.", ".", name)
 orgpath = os.path.join(root, orgname)
 if os.access(orgpath, os.F_OK):
 # 元ファイルとファイルサイズが同じなら削除
 org_s = os.stat(orgpath)
 s = os.stat(path)
 if s.st_size == org_s.st_size:
 os.remove(path)
 print path, " is removed"
print "done"

引数にF-Spotの画像ルートディレクトリを指定すれば処理を行います。

yokoyama プログラム小技 , ,

ウド日高

2009 年 4 月 23 日

「ウド」 ほろ苦い春の香り。

今、ウドは旬です。

日高市はウドの生産高が埼玉県一位を誇る、ウドの町です。

しかし、市民でもそれを知っている人は少ないのです。

多くが関西方面に出荷されてしまうので、あちらの方が「埼玉のウド」は有名なのかもしれません。

毎年春前にはNHKのニュースでも伝えられているのに、なぜ知らないのか?

商品となる白いウドは地下で栽培しているので、どこで栽培しているのか知らないのです。

テレビ中継でしか存在を知ることのできないウド・・・

私も栽培場所を知りません。

畑で背の小さなウドが整然と並んでいる地域があるので、苗を作っているのでしょう。

しかし、野に自生するウドと同じ緑色なので、

知らない人が見ると雑草群にしか見えません。

日高市はウド祭りでも仕掛けて、観光の一事業にすればもうちょっと認知度が上がるでしょうね〜

手始めに、市役所に「ウドのまち日高」と垂幕でも出したり、

公式ホームページのタイトルの空白に「清流とウドのまち」と書いてみてほしいです。

検索エンジンで「ウド」「うど」を検索して、上位5位以内に入って欲しいですね。

yokoyama 日高市 ,