Python/Python
Python 개발일지 (1. 마우스 좌표 값 csv로 저장하기)
개발자리
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을 사용하였다
반응형