だいぶん前の記事にPythonをつかって一定間隔で処理を実行するというサンプルを書いていた(JavaScriptならsetIntervalに相当する処理をさせたいということだった)。しかし,この時は知らなかったが,Python for .NETを使えば.NET Frameworkの支援を受けて一定間隔処理を記述することも可能であると知った。
Python for .NETを使って一定間隔処理のサンプルは以下のようになる。ちなみにWinPython以外だと入ってないかもしれないのでpip install pythonnetの実行からになると思います。(WinPython 3.7.0.1にはpythonnetがまだ非対応で3.7.0.2から暫定対応している )
最初は,Environment.Versionを調べる例を作ろうとしていたので,最初に残っている。
タイマーtickもPythonで記述してしまう例になっている。
import clr from time import sleep clr.AddReference('System') from System import Environment from System.Timers import Timer from System import DateTime print(Environment.Version.ToString()) running = True def timer_tick(o, e): if running == True: print(DateTime.Now.ToString()) else: timer.Stop() timer = Timer() timer.Interval = 1000 timer.Elapsed += timer_tick timer.Start() try: while running == True: sleep(1) except KeyboardInterrupt: running = False
ちなみにEnvironment.Versionは4.5から全部4.0.**と表示されるようになってるらしい。(あれ,.NET Framework 4.0? おかしいなと思っても気にしないで)
この例では,clr.AddReference('System')はいらないらしい(Systemは暗黙的にReferenceに含まれるみたい)。
タグ:Python