Sunday, May 9, 2010
画像ファイル(PNG)でファイルサイズが 0 のファイルを列挙する python
数百ページからなるFrameMakerファイルをリンクして、 RoboHelp経由でHTML Helpを生成しているのだが、 なぜか、RoboHelpが自動生成する画像ファイルの中でサイズが0のファイルが 出現するようになってしまった。
RoboHelpを再起動した後、 強制的に更新、などをすることで、画像ファイルを意図通り正しく 生成することはできるのだが、 何しろ、7000を超える画像点数があるので、 この中で問題がある(=ファイルサイズが 0 のPNGファイル)が本当に ないかどうか調べることができない。(そんな暇ない。)
chk_zerosize_pngfile.py
これが、カレントディレクトリ内のPNGファイルを列挙した上で、 ファイルサイズを調べて、0 ならプリントするコード。
import os
filenames = os.listdir( os.curdir )
for f in filenames :
path = os.curdir+'/'+f
if os.path.isfile(path) and f.endswith('png'):
fsize=os.path.getsize(path)
if fsize==0:
print path
おまけ、bash + awk による問題解決
$ ls -l foo.png | awk '{print $5}'
というシェルスクリプトで、ファイルサイズを調べることは可能なのだが、 Cygwinでは、この処理がとても遅く、7000件処理するのに、数分は軽くかかってしまった。
