Python スクリプトをWindowsPC で、作業用に EXE化した実行ファイルで利用する場合に
・目的の処理の為にファイルを指定すること。
・実行終了時は通知が欲しい。
と要求を満たすようにしたい。
ファイルの指定=読み込ませるファイルは、Windows での作業なので、exeファイルアイコンに
ドラッグアンドドロップ操作で渡したい。
Python では、このドラッグアンドドロップ操作で渡すファイルPath を
sys パッケージの引数 argv で受け取れることを利用する。
すると、EXE化させるPython スクリプトの形も次の点を抑えれば良い。
・sys.argv で取得する引数[1] でドラッグアンドドロップ操作で渡すファイルPath を取得
・os.system で、Windows のコマンド PAUSE を実行して print で処理状況表示し後、一時停止する
サンプルのスクリプト
# -*- coding: utf-8 -*- import os import sys import datetime class Hello(): def __init__(self, file): self.file = file self.dirname = os.path.dirname(file) def exec(self): # 引数で指定されたファイル self.file を処理する print(self.file) print(self.dirname) filesize = os.path.getsize(self.file) print("size = %d" % filesize) mtime = os.path.getmtime(self.file) print(type(mtime)) mtimestr = datetime.datetime.fromtimestamp(mtime) print(mtimestr) if __name__ == '__main__': args = sys.argv if len(args) == 2: if os.path.isfile(args[1]): hello = Hello(args[1]) hello.exec() else: print("Not Found %s" % args[1]) else: print("Usage: Hello.exe file") os.system("PAUSE")
EXE化は、以下を参考に、、、
oboe2uran.hatenablog.com