前提・実現したいこと
以下の画像のように、画面内に出てくる矢印をもとに左から順に読み取って、これに対応するキーボードのキーを押せるようにしたいと考えています。
画像の例では、↑→↑←↓↑となっていますので、その通りに
キーを押したいと考えています。
発生している問題・エラーメッセージ
上記を実現しようとして、スクリプト直下にpictureフォルダを置き、
その中に上下左右に対応するpng画像を配置し、pyautoguiのlocateAllOnScreenでリスト取り出しした後、
x軸方向の値をもとにソートして、data列(取り出した矩形領域)とdirection列(上下左右の識別文字列)を持ったdataframeを作ったのですが、ここからx軸の値をもとにソートすることができないので、
左にあるものから順に並び替えができず困っております。
dataframeから取り出す良い方法があるか、それかもっとスマートに
やりたいことができる方法があれば、ご教示いただけましたら幸甚です。
該当のソースコード
python3
1check_picture_list = [ 2 Path("picture") / Path("up.png"), 3 Path("picture") / Path("down.png"), 4 Path("picture") / Path("left.png"), 5 Path("picture") / Path("right.png"), 6] 7directions = ["up", "down", "left", "right"] 8 9tmp_result_list = [] 10tmp_direction_list = [] 11sorted_list = [] 12result_list = [] 13direction_list = [] 14result_df = pd.DataFrame([], columns=["data", "direction"]) 15for pict, direction in zip(check_picture_list, directions): 16 tmp_result_list = list(pyautogui.locateAllOnScreen(str(pict), confidence=0.98)) 17 tmp_direction_list = [direction]*len(tmp_result_list) 18 tmp_df = pd.DataFrame(list(zip(tmp_result_list, tmp_direction_list)), columns = ['data', 'direction']) 19 # tmp_df["direction"] = direction 20 print(f"pict:{pict}, tmp_df:{tmp_df}") 21 result_df = pd.concat([result_df, tmp_df])
試したこと
やりたいことをできるようにするため、pyautoGUIのリファレンスや関連URLを確認した。
補足情報(FW/ツールのバージョンなど)
python 3.9.6
pandas 1.3.0
PyAutoGUI 0.9.53
回答1件
あなたの回答
tips
プレビュー