kedzkiestの日記

普段の発見や開発の進捗について書いていきます。

pyautoguiを使って超速タイパーのふりをする

pythonのpyautoguiを使って色々面白いことができそうなので、とりあえず自分が発見した使い方について書きました。


まずpyautoguiとは、クロスプラットフォームGUI操作を自動化できるpythonの外部モジュール(1)です。簡単に言えば、プログラムからマウスやキーボードを操作できるということです。

今回私が注目したpyautoguiの機能は、typewrite関数です。typewrite(text, interval)のように引数を渡すと、現在マウスカーソルのある位置に、指定したtextを時間感覚intervalで一文字ずつ打ってくれます。

例えば、typewrite('Hello, world!', 1)としたときの実行結果は
youtu.be



このように自動で打ってくれます。後から思ったのですが、実行結果だけ見ると人力で打っているのか自動で打っているのか判別できませんね・・。

さて、ここから本題に入ります。typewrite関数の2つの引数のうち、textの方を長い文章にして、intervalを短くすれば、ものすごいタイピングを見せつけることができます。

import pyautogui as ag

#type.txtに自動でタイピングしたい内容を書く
f = open('type.txt', 'r', encoding='utf-8')
text = f.read()
f.close()
ag.typewrite(text, 0.001)

長い文章を引数に渡すことを考えると、自動タイピングしたい内容をテキストファイルに書いておき、それを読み込むと簡潔に書ける気がします。
例えばtype.txtの内容を、微分法の英語版ウィキペディアから取ってくると
youtu.be
このようになります。

上手いタイミングで.pyファイルを実行することができれば、傍から見ると恐ろしく早いタイピングの使い手になれること間違いありません!