티스토리 뷰
반응형
모든 강의 자료 : www.codingnow.co.kr/
https://youtu.be/Q4cC5xG2ZbI?si=sJkmILpveluldefb
파이썬의 pyautogui를 사용하여 사무자동화 프로그래밍을 해봅니다.
pyautogui는 마우스와 키보드를 제어할 수 있게 해주며,
이미지를 이용해 이미지의 위치(좌표)를 찾을 수 있는 기능도 있습니다.
여기서는 파이썬의 pyautogui를 사용하여
10초 주기로 메모장의 위치를 자동으로 찾고
마우스를 이동하여 더블클릭하여 실행합니다.
그리고 리스트로 저장된 영어 명언을 순차적으로 입력하고 저장합니다.
자세한 설명은 첨부된 동영상을 참고해주세요.
[강의 소스코드]
import pyautogui
import time
# while True:
# print(pyautogui.position())
# pyautogui.moveTo(257,535, duration=1)
strs = [
'No great man ever complains of want of opportunity.',
# 위대한 사람은 기회가 없다고 원망하지 않는다.
'Do not accustom yourself to use big words for little matters.',
#작은 일에 거창한 말을 사용하는 습관을 피해라.
'A day without laughter is a day wasted.',
# 웃음 없는 하루는 낭비한 하루다.
]
length = len(strs)
count = 0
timePre = time.time()
timeElapsedPre = 0
while count < length:
# print(int(time.time() - timePre))
timeElapsed = int(time.time() - timePre)
if timeElapsed >= 3:
# print("10초")
poi = pyautogui.locateCenterOnScreen('test.png',confidence=0.8)
if poi != None:
pyautogui.doubleClick(poi, duration=0.5)
# pyautogui.doubleClick(257, 535, duration=0.5)
time.sleep(1)
pyautogui.typewrite(['enter'])
pyautogui.typewrite(f'{count}. {strs[count]}', interval=0.1)
pyautogui.hotkey('alt','f')
pyautogui.typewrite(['down','down','down','enter'],interval=0.1)
pyautogui.hotkey('alt', 'f')
pyautogui.typewrite(['down', 'down', 'down', 'down',
'down', 'down', 'down', 'enter'], interval=0.1)
count += 1
timePre = time.time()
else:
if timeElapsed != timeElapsedPre:
print(timeElapsed,'초')
timeElapsedPre = timeElapsed
[코드 정리 및 확장한 코드]
import pyautogui
import time
count = 0
strs = [
'No great man ever complains of want of opportunity.',
# 위대한 사람은 기회가 없다고 원망하지 않는다.
'Do not accustom yourself to use big words for little matters.',
#작은 일에 거창한 말을 사용하는 습관을 피해라.
'A day without laughter is a day wasted.',
# 웃음 없는 하루는 낭비한 하루다.
"Patterning your life around other's opinions is nothing more than slavery.",
# 다른 사람의 생각에 인생을 맞춰가는 것은 노예나 다름없다.
"love what you have.",
# 당신이 가진 것을 사랑하라.
"It ain't over till it's over.",
# 끝날 때까지는 끝난 게 아니다.
"Life is not fair, get used to it.",
# 인생이란 결코 공평하지 않다. 이 사실에 익숙해져라.
"Only I can change my life, No one can do it for me.",
# 나만이 내 인생을 바꿀 수 있다. 아무도 날 대신해 줄 수 없다.
"The unexamined life is not worth living.",
# 반성하지 않은 삶은 살 가치가 없다.
"Life is a tragedy when seen in close-up, but a comedy in long shot.",
# 인생은 가까이서 보면 비극이지만 멀리서 보면 희극이다.
"Do not be afraid to give up the good to go for the great.",
# 더 좋은 것을 쫓기 위해 좋은 것을 버리는 것을 두려워하지 마라.
"Better the last smile than the first laughter.",
# 처음의 큰 웃음보다 마지막의 미소가 더 좋다.
"No pain no gain.",
# 고통없이는 얻는 것도 없다.
"Habit is second nature.",
# 습관은 제 2의 천성이다.
"We can give advice, but we cannot give conduct.",
# 충고는 해 줄 수 있으나, 행동하게 할 수는 없다.
"Success doesn't come overnight.",
# 성공은 하룻밤 사이에 오지 않는다.
"Better late than never.",
# 아예 안하는 것보단 늦게라도 하는 게 낫다.
"Who dares, wins.",
# 도전하는 자가 승리한다.
"Slow and steady win the race.",
# 천천히 그리고 꾸준히 하면 경주에서 승리한다.
"Rome is not built in a day.",
# 로마는 하루아침에 만들어지는 것이 아니다.
]
def writeNotePad():
global count
pyautogui.typewrite(f'{count+1}. {strs[count]}', interval=0.1)
#save
time.sleep(1)
pyautogui.keyDown('alt')
pyautogui.typewrite(['f'])
pyautogui.keyUp('alt')
pyautogui.typewrite(['down','down', 'down'],interval=0.1)
pyautogui.typewrite(['enter'])
#exit
time.sleep(1)
pyautogui.keyDown('alt')
pyautogui.typewrite(['f'])
pyautogui.keyUp('alt')
pyautogui.typewrite(['down', 'down', 'down', 'down',
'down', 'down', 'down'], interval=0.1)
pyautogui.typewrite(['enter'])
#alt + f4
# pyautogui.keyDown('alt')
# pyautogui.typewrite(['f4'])
# pyautogui.keyUp('alt')
# time.sleep(1)
# pyautogui.typewrite(['enter'])
count += 1
def findIcon(path):
find = pyautogui.locateCenterOnScreen(path, confidence=0.8) # 좌표 검색
if find != None:
# print(find, end=' ')
pyautogui.moveTo(find, duration=0.1) # 좌표로 마우스 이동
pyautogui.doubleClick() # 클릭
time.sleep(1)
pyautogui.typewrite(['enter', 'up'], interval=0.1)
time.sleep(1)
writeNotePad()
# print(pyautogui.position())
timePre = time.time()
timeElapsedPre = 0
while count < len(strs):
timeElapsed = int(time.time() - timePre)
if timeElapsed >= 10:
findIcon("test.png")
timePre = time.time()
else:
if timeElapsed != timeElapsedPre:
print(timeElapsed, '초')
timeElapsedPre = timeElapsed
반응형
'파이썬 강의' 카테고리의 다른 글
파이썬 기초 활용편 #사무자동화 프로젝트 #엑셀 자동실행하고 자동 입력하기#pyautogui (0) | 2021.03.31 |
---|---|
파이썬 기초 활용편 #사무자동화 프로젝트 #웹페이지 자동실행하고 버튼위치 찾아서 클릭하기 #pyautogui (0) | 2021.03.26 |
코드 에디터 설치하기 #vscode (Visual Studio code) (0) | 2021.03.16 |
파이썬 기초 활용편 #게임만들기 프로젝트 5탄 #화살쏘기 (멧돼지잡기)게임 (0) | 2021.03.04 |
파이썬 기초 활용편 #게임만들기 프로젝트 4탄 #추억의 DDR 게임 (0) | 2021.02.26 |