WANtaroHP (Py3: Small Scripts)

Contents

コマンドライン引数の利用

py_basic_cline.py ソースコード

# -*- coding: utf-8 -*-
import sys
argvs=sys.argv
argc=len(argvs)

print(argc)
print(argvs)
for i,s in enumerate(argvs):
    print(i,s)

# example of an execution
# python3 py_cline.py a b c
# 4
# ['py_cline.py', 'a', 'b', 'c']
# 0 py_cline.py
# 1 a
# 2 b
# 3 c


指定ディレクトリ以下のファイルパスを取得する

py_basic_file.py ソースコード

# -*- coding: utf-8 -*-
import os
path='/Users/katsu_kubota/DATA_WANtaroHP_mac'
file_list=[]
for root,dirs,files in os.walk(path):
    for file in files:
        file_list.append(os.path.join(root,file).replace('/Users/katsu_kubota/DATA_WANtaroHP_mac/',''))
for result in file_list:
    if ('dir_' in result)==True and ('.DS_Store' in result)==False: print(result)


現在時刻を取得する

py_basic_dtime.py ソースコード

# -*- coding: utf-8 -*-
import datetime

mdic={
1:'January',\
2:'February',\
3:'March',\
4:'April',\
5:'May',\
6:'June',\
7:'July',\
8:'August',\
9:'September',\
10:'October',\
11:'November',\
12:'December',}
d = datetime.datetime.today()
print(d)
print('%02d %s %4d at %02d:%02d:%02d\n'\
% (d.day,mdic[d.month],d.year,d.hour,d.minute,d.second))


処理時間計測

py_basic_time.py ソースコード

# -*- coding: utf-8 -*-
from datetime import datetime
t_start=datetime.now()
for i in range(10000):
    for j in range(10000):
        pass
t_stop=datetime.now()
print(t_stop-t_start)
print(t_start)
print(t_stop)


デジタル時計

py_basic_digit.py ソースコード

# -*- coding: utf-8 -*-
#http://www.geocities.jp/m_hiroi/light/pytk07.html
from tkinter import *
from time import *

def show_time():
    buff.set(strftime('%H:%M:%S (%a %d %b %Y)'))
    root.after(1000, show_time)

root = Tk()
buff = StringVar()
buff.set('')
Label(root,textvariable=buff,font='arial 14',relief=FLAT).pack()
show_time()
root.mainloop()


ビューア (1)

py_basic_imshow0.py ソースコード

from PIL import Image

img=Image.open('fig_hist.png')
img.show()


ビューア (2)

py_basic_imshow1.py ソースコード

from tkinter import *
import tkinter.filedialog
from PIL import Image

def open_callback():
    file_name=tkinter.filedialog.askopenfilename(initialdir='/Users/katsu_kubota/')
    img=Image.open(file_name)
    text='info: '+img.format+' ('+str(img.size[0])+','+str(img.size[1])+') '+img.mode
    listbox.insert(END, file_name)
    listbox.insert(END, text)
    print(file_name)
    print(text)
    img.show()

#Menu
root = Tk()
menu = Menu()
root.config(menu=menu)
file_menu = Menu(menu, tearoff=0)
file_menu.add_command(label='Open', command=open_callback)
file_menu.add_separator()
file_menu.add_command(label='Exit', command=root.destroy)
menu.add_cascade(label='File', menu=file_menu)

#Listbox
listbox = Listbox(root,width=50)
listbox.pack()

mainloop()


文字コード変換

py_basic_conv_su.py ソースコード

# -*- coding: utf-8 -*-
import os
import codecs

str1s='<meta charset="shift_jis">'
str1u='<meta charset="utf-8">'
str2s='<meta http-equiv="Content-Type" content="text/html;charset=shift_jis">'
str2u='<meta http-equiv="Content-Type" content="text/html;charset=utf-8">'
str3s='#! coding: Shift_JIS'
str3u='# -*- coding: utf-8 -*-'
str4s='# coding: Shift_JIS'
str4u='# -*- coding: utf-8 -*-'

f_list=[]
#dir0='c:¥DATA_WANtaro¥Fixed_WANtaroHP'
dir0='d:¥WAN1'
for root, dirs, fname in os.walk(dir0):
    for fname1 in fname:
        if '.html' in fname1: f_list=f_list+[os.path.join(root,fname1)]
        if '.css' in fname1: f_list=f_list+[os.path.join(root,fname1)]
        if '.txt' in fname1: f_list=f_list+[os.path.join(root,fname1)]

for f in f_list:
    print(f)
    try:
        fin  = codecs.open(f, 'r', 'shift_jis')
        data=fin.read()
        fin.close()
    except: pass
    try:
        fin  = codecs.open(f, 'r', 'utf-8')
        data=fin.read()
        fin.close()
    except: pass
    try:
        fin  = codecs.open(f, 'r', 'euc-jp')
        data=fin.read()
        fin.close()
    except: pass

    data=data.replace(str1s,str1u)
    data=data.replace(str2s,str2u)
    data=data.replace(str3s,str3u)
    data=data.replace(str4s,str4u)

    fout = codecs.open(f, 'w', 'utf-8')
    fout.write(data)
    fout.close()

pass


マーカー表示

py_basic_marker.py ソースコード

from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Arial']
import matplotlib.pyplot as pl

ml=(
('.','point'),
(',','pixel'),
('o','circle'),
('v','triangle_down'),
('^','triangle_up'),
('<','triangle_left'),
('>','triangle_right'),
('1','tri_down'),
('2','tri_up'),
('3','tri_left'),
('4','tri_right'),
('8','octagon'),
('s','square'),
('p','pentagon'),
('*','star'),
('h','hexagon1'),
('H','hexagon2'),
('+','plus'),
('x','x'),
('D','diamond'),
('d','thin_diamond'),
('|','vline'),
('_','hline'),
('$\sum$','TeX')
)
fig=pl.figure()
pl.xlim(0,6)
pl.ylim(25,0)
for i,k in enumerate(ml):
    pl.plot(1,i+1,linestyle='None',marker=k[0],markersize=10,markerfacecolor="w",markeredgecolor="b",markeredgewidth=1,label=k[1])
pl.legend(shadow=True,title='Marker',loc='upper right',ncol=2)
#pl.legend(shadow=True,title='Marker',loc='upper right', prop={'size',14},ncol=2)
pl.savefig('fig_marker.png',dpi=200)
pl.show()
png
fig_marker.png


ドットで始まるファイルを削除する

py_dotdel.py ソースコード

  import os,sys

  def getStructure(dirpath,depth=0):
      root=os.path.basename(dirpath)
      contents = os.listdir(dirpath)
      contents.sort()
      for content in contents:
          if content=='.' or content=='..':
              continue
          fullPath=os.path.join(dirpath,content)
          if os.path.isdir(fullPath):
              getStructure(fullPath,depth+4)
          elif os.path.isfile(fullPath):
              text=fullPath
              text=text.split('/')
              for i in range(0,len(text)):
                  if text[i].startswith('.')==True:
                      print(fullPath)
                      os.remove(fullPath)

  if __name__ == '__main__':
      for path in sys.argv[1:]:
          getStructure(path)


16進数を10進数に変換

色指定を行う 2文字 x 3 の 16 進表示を,3 個の 10 進数に変換します. 入力はキーボードより「ffaa00」のように行います.

py_16to10.py ソースコード

s=str(input())
v1=int(s[0:2],16)
v2=int(s[2:4],16)
v3=int(s[4:6],16)
print(v1,v2,v3)


inserted by FC2 system