PythonとShell script の小プログラム



JPG画像縮小スクリプト(ImageMagick コマンド)

  • あるフォルダに入っている拡張子 JPG の画像ファイルを,30% に縮小して,その下のフォルダ thumbs に保存する
  • フォルダ thumbs は予め作っておく必要がある
  • ImageMagick の convert コマンドを含むシェルスクリプトは,元画像が入っているフォルダに置いて実行する
  • スクリプトを実行すると子フォルダ thumbs に per30_xxxx.JPG(xxxx.JPGは元画像のファイル名)という縮小された画像が保存される

Shell script: a_resize.txt


per=per30_
for image in `ls *.JPG`
do
    imgn=$per$image
    echo $imgn
    convert -resize 30%x30% $image thumbs/$imgn
done


JPG表示html作成Pythonプログラム

  • あるフォルダに入っている拡張子 JPG の画像ファイルを,html を使ってサムネイル風に表示する
  • Python プログラムは,画像と同じフォルダに置く必要がある
  • Python プログラムを実行すると maggie.html という html ファイルが作成される
  • html を表示すると,元画像が縮小されて横幅 200px で表示される
  • 実際にサムネイルを作っているわけではなく,html の機能で縮小表示させているだけである

Python program: py_pic.py


import os
from PIL import Image
 
filenames = os.listdir('./')
imgl=[]
ww=[]
hh=[]
for fname in sorted(filenames):
    path, ext = os.path.splitext( os.path.basename(fname) )
    if ext=='.JPG' and path[0:2]!='._':
        pic=path+ext
        im=Image.open(pic)
        w=im.size[0]
        h=im.size[1]
        print(pic, w, h)
        imgl=imgl+[pic]
        ww=ww+[w]
        hh=hh+[h]

f=open('maggie.html','w')
print('<html>',file=f)
print('<body>',file=f)
print('<table>',file=f)
n=len(imgl)
m=int(n/5)+1
k=-1
for i in range(0,m):
    print('<tr>',file=f)
    for j in range(0,5):
        k=k+1
        if k<=n-1:
            pic=imgl[k]
            w1=200
            h1=int(hh[k]/ww[k]*200)
            print('<td align="center"><img src="'+pic+'" alt="pic" width="'+str(w1)+'", height="'+str(h1)+'"><br><a href="'+pic+'">I'+pic+'<a></td>',file=f)
        else:
            print('<td></td>',file=f)
    print('</tr>',file=f)
print('</table>',file=f)
print('</body>',file=f)
print('</html>',file=f)
f.close()


MathJax読み込み変更Pythonプログラム

  • 数式表示に用いているMathJaxの読み込み先を,Mac内フォルダから外部のcdn.mathjax.orgに切り替える,あるいはその逆を行う
  • コマンドライン引数で,ゼロ(0)を指定すると外部読み込み,1を指定するとMac内読み込みに切り替わる
  • 機能は,Pythonのreplaceを用いて,読み込み先を書き換えるようにして実現している

Python py_rep.py 0   # 外部読み込み(アップロード用)
Python py_rep.py 1   # Mac内読み込み(html文書作成時,オフライン使用時)

Python program: py_rep.py


import sys

param=sys.argv
iflag=int(param[1])

flist=[]
flist=flist+['sub_e_floodrT.html']
flist=flist+['sub_e_headloss.html']
flist=flist+['sub_j_flowchart.html']
flist=flist+['sub_j_latex_test.html']

for fnameR in flist:
    f=open(fnameR)
    src=f.read()
    f.close()
    if iflag==0:
        str1='<script src="/Users/kk/mathjax/MathJax.js?config=TeX-AMS_HTML">'
        str2='<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">'
    else:
        str1='<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">'
        str2='<script src="/Users/kk/mathjax/MathJax.js?config=TeX-AMS_HTML">'
    text=src.replace(str1,str2)
    fnameW=fnameR
    f=open(fnameW,'w')
    f.write(text)
    f.close()


inserted by FC2 system