新型コロナウイルスのためにStay Homeが叫ばれている中、YouTubeを見る機会が多くなった。囲碁や写真のプロやハイアマチャのチャンネルは大変勉強になる。

プログラミングのチャンネルを見ていて最近話題のオブジェクト指向プログラミング言語Pythonに興味を持ったので使ってみた。

グイド・ヴァンロッサムというオランダ出身のアメリカ在住のプログラマーが作った。無料で多くのプラットフォームで稼働し、分かりやすいということで世界中で使われだした。 Pythonとはニシキヘビの意味。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン (Monty Python's Flying Circus)』から。

<日経BP日経クロステック2020年人気ランキング>

Pythonは数年前は下位の方だったが今年は1位に肉迫


The official home of the Python Programming Language
 

簡単な作例

ホームページに記事を掲載するために、投稿者から記事と写真が送られるが写真の名前をコメントに変更して添付されてくることが多い。

撮影時の写真名は DSC_0456.jpg などだが、名前を変えて 男鹿の鯛祭り.jpgなど。掲載する側にすれば間違えなくて助かる。さらに写真の順番として頭に掲載順を付けて01 男鹿の鯛祭り.jpgとして送ってくれる人がいる。多い時は50枚以上の写真が送られてくる。

昔のパソコンでは日本語のファイル名は使えなかったが最近は使えるようになった。とはいってもどこかで不都合が起こりそうな気がするのと整理のし易さで、基本的には英数字に変えている。

単純作業だが結構間違うのでこれをプログラム化してみた。

Python プログラム (p_test.py)


# ----------- html generater 2 
import os
import datetime
import shutil 
#--- input folder 
path_in = 'img_file'
# --- copy to folder    
path_new = '2020'
# --- put comment of image 
psw = 1
# html tag 
tag_1 = '<div id="div_frame1" style="width:80%"><img src="'
tag_2 = '"></img><p>'
tag_3 = '</p></div>'
# --- get date
dt_now = datetime.datetime.now()
print (dt_now.strftime('%Y-%m-%d %H:%M:%S'))
# ----- new file name 
nname_date = dt_now.strftime('%Y%m%d') 
# --- read folder directry list 
files = os.listdir(path_in)
print(files)        
#---- write 
with open( 'html_img.txt', mode='w') as f_w:
       f_w.write(dt_now.strftime('%Y-%m-%d %H:%M:%S'))
# --- folder_in/P5051234.jpg --copy--> folder_out/20200610_01.jpg 
       i = 1
       for iname in files:
            oname = path_in + '/' + iname
            nname_no = '{0:02d}'.format(i)
            # --- copy each file 
            nname = path_new + '/' + nname_date + '_' + nname_no + '.jpg'
            shutil.copyfile(oname, nname)
            # --- write html tag data
            if not psw == 1 : 
               iname = ''     
            oline = '\n' + tag_1 + nname + tag_2 + iname.strip('.jpg JPG') + tag_3
            f_w.write(oline)
            i +=  1
            print(oline)
       
    ~メモ~
  • Python プラグラムの拡張子は .py
    p_test.py
  • #で始まる行はコメント
    # コメント
  • import に指定するのは他のプログラムから呼び出され必要な情報を取り出せるように作られたプログラム(ライブラリー)
  • for などの繰り返し文は末尾にコロン(:)を付けて、続く行はブランク(インデント)で右に下げて繰り返しの範囲を示す
     for iname in files:
      onamr = xx 
      nname = yy
  • 定数は ' または " で囲む、変数との連結は+でつなげる
      a = 'zzz'
      z = a + 'img'
      print (z)
    プリント結果 => zzzimg
  • \n は出力の改行
  • コード改行は \ (この例ではwindowサイズによっては便宜上折り返して表示される)

プログラムの出力

<div id="div_frame1" ><img src="2020/20200626_01.jpg"></img><p> 01 男鹿の鯛祭り</p></div>
<div id="div_frame1" ><img src="2020/20200626_02.jpg"></img><p> 02 日本秘湯を守る会 会員/なまはげの湯 露天岩風呂の宿 元湯雄山閣 (1)</p></div>
<div id="div_frame1" ><img src="2020/20200626_03.jpg"></img><p> 03 温泉大浴場(男湯)</p></div>
<div id="div_frame1" ><img src="2020/20200626_04.jpg"></img><p> 04 温泉露天浴場(男湯)</p></div>
<div id="div_frame1" ><img src="2020/20200626_05.jpg"></img><p> 05 温泉大浴場(女湯)</p></div>
<div id="div_frame1" ><img src="2020/20200626_06.jpg"></img><p> 06 温泉露天浴場(女湯)</p></div>
<div id="div_frame1" ><img src="2020/20200626_07.jpg"></img><p> 07 食事処 和風茶房 五風庵&60/p></div>
<div id="div_frame1" ><img src="2020/20200626_08.jpg"></img><p> 08 男鹿名物 石焼料理</p></div>
<div id="div_frame1" ><img src="2020/20200626_09.jpg"></img><p> 09 雄山閣でしか味わえない郷土の味「あんぷら餅」</p></div>
<div id="div_frame1" ><img src="2020/20200626_10.jpg"></img><p> 10 お食事</p></div>
<div id="div_frame1" ><img src="2020/20200626_11.jpg"></img><p> 11 菅江真澄図絵集の館</p></div>
<div id="div_frame1" ><img src="2020/20200626_12.jpg"></img><p> 12 鯛祭りの献立</p></div>

ブラウザ表示

01 男鹿の鯛祭り

02 日本秘湯を守る会 会員/なまはげの湯 露天岩風呂の宿 元湯雄山閣 (1)

03 温泉大浴場(男湯)

04 温泉露天浴場(男湯)

05 温泉大浴場(女湯)

06 温泉露天浴場(女湯)

07 食事処 和風茶房 五風庵&60/p>

08 男鹿名物 石焼料理

09 雄山閣でしか味わえない郷土の味「あんぷら餅」

10 お食事

11 菅江真澄図絵集の館

12 鯛祭りの献立



 

本番用は写真のサイズなど調整出来るようになっている。
* 実際の公開ページ : なまはげ通信(東京秋工会サイト)
 


 続編 : python でhtmlを作る②


 
 
Total Today Yesterday