私の Sikuli スクリプトは、Python モジュールの loggingを使用してすべての操作をログに記録します。入力したキー定数をログに書き込もうとすると、問題が発生します。例として、文字列も必要なため、print関数を使用しました。
print((Key.ALT).encode('utf-8'))#exception not thrown but nothing readable is printed
print(Key.ALT) #UnicodeEncodeError: 'ascii' codec can't encode character u'\ue022' in position 0: ordinal not in range(128)
もちろん、変数をすべての可能なキー定数と比較できます。
myKey = Key.ALT
if(myKey==Key.CTRL):
print('ctrl pressed')
elif(myKey==Key.ALT):
print('alt pressed')
#etc…
しかし、これは私が推測する最も効率的な方法ではありません。次のような他の回避策を実行することもできます。
print(“Key.ALT pressed”)
keyDown(Key.ALT)
しかし、 Key.CONSTANTを印刷可能な (書き込み可能な) 形式に変換して、「入力」関数が 1 つの引数 (入力とログ記録に使用されるキー定数のみ) を取るようにする方法を見つけたいと考えています。出来ますか?