-
Python 개발일지 (1. 마우스 좌표 값 csv로 저장하기)Python/Python 2020. 4. 9. 11:21반응형
요즘 마우스 좌표를 받아서 분석해볼려는 시도를 해보고 있는데
그러기 위해서 마우스 좌표 값들을 시간대별로 출력하는 프로그램을 작성하고 있다.
먼저 첫번째로 마우스 pynput.mouse 에 리스너들을 임폴트해서 마우스 좌표를 반환하는 프로그램을 작성하였다
from pynput.mouse import Listener def on_move(x, y): print('마우스 좌우측 좌표 {0} , 마우스 상하 좌표 {1} '.format(x, y)) def on_click(x, y, button, pressed): print('마우스 클릭 좌표 {0} , {1} 클릭 값 {2}'.format(x, y, pressed)) def on_scroll(x, y, dx, dy): print('스크롤 이벤트 (좌표 , 스크롤 값 ):({0},{1}) ({2},{3})'.format(x, y, dx, dy)) with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener: listener.join()
그 다음일은 print 된 좌표값들을 csv 로 저장해준다.
from pynput.mouse import Listener import csv # csv 로 저장하기 위해 호출 f = open('mouse_logs.csv', 'w', newline='') wr = csv.writer(f) def on_move(x, y): # 마우스 이동시 좌표값 저장 wr.writerow([x, y]) def on_click(x, y, button, pressed): # 클릭시 좌표값 및 버튼 정의 wr.writerow([x, y, button]) def on_scroll(x, y, dx, dy): # 마우스 스크롤시 좌표 값 및 스크롤 값 wr.writerow([x, y, dx, dy]) with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener: listener.join() f.close()
그 다음 마우스 들 이동 사이에 얼마만큼이 시간이 지낫는지 확인하기 위해서 시간을 모듈화해서 호출해준다
from pynput.mouse import Listener from datetime import datetime, timezone, timedelta import csv import time f = open('mouse_logs2.csv', 'w', newline='') wr = csv.writer(f) # 한국 시간으로 저장하기 위해 포멧을 맞춰준다 KST = timezone(timedelta(hours=9)) now = datetime.now(KST) class update(): def year(self): return datetime.now(KST).strftime("%Y%m%d") def hour(self): return datetime.now(KST).strftime("%H") def mit(self): return datetime.now(KST).strftime("%M") def sec(self): return datetime.now(KST).strftime("%S") def mil(self): return datetime.now(KST).strftime("%f") def on_move(x, y): print(x, y) wr.writerow([time.time(), update().year(), update().hour(), update().mit(), update().sec(), update().mil(), x, y]) print(datetime.now(KST).strftime('%Y-%m-%d %H:%M:%S.%f')) def on_click(x, y, button, pressed): wr.writerow([time.time(), update().year(), update().hour(), update().mit(), update().sec(), update().mil(), x, y, button]) # logging.info('Mouse clicked at ({0} , {1}) with{2}'.format(x, y, button)) def on_scroll(x, y, dx, dy): # logging.info('Mouse scrolled at ({0},{1}) ({2},{3})'.format(x, y, dx, dy)) wr.writerow([time.time(), update().year(), update().hour(), update().mit(), update().sec(), update().mil(), x, y, dx, dy]) with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener: listener.join() f.close()
해당 시간을 모듈화해서 움직일 때마다 실행해주게 작성하였다
본인은 좀더 시간에 대해서 미세한 변화를 보기위해서 time을 사용하였다
반응형'Python > Python' 카테고리의 다른 글
Python (Pysafebrowsing 키 발급 및 패키지 설치 ) (0) 2020.04.29 Python 윈도우 잠금 하기 (0) 2020.04.09 Python Pandas(2. 누락된 데이터 처리하기 .) (0) 2020.02.06 Python Pandas (1. Pandas에서 데이터 연산하기) (0) 2020.02.04 Python ( list 중복 요소 제거 ) (0) 2020.01.31