파이썬 라이브러리
- tesseract
- pyautogui
- pyinstaller
- csv
- selenium
1. tesseract
# tesseract (github)
https://github.com/tesseract-ocr
# 파이썬 Python 코딩 – tesseract OCR 이미지에서 텍스트 추출
https://www.youtube.com/watch?v=rNxMwtottmM
# Tesseract로 OCR 하기 (joyhong tistory)
https://joyhong.tistory.com/79
# 윈도우용 tesseract 설치 파일 다운로드
https://github.com/UB-Mannheim/tesseract/wiki
– 설치 할 때 Additional language data 에서 Korean 체크
# 더 나은 샘플 데이터 2개 받기
https://github.com/tesseract-ocr/tessdata
– kor.traineddata, kor_vert.traineddata
– C:\Program Files\Tesseract-OCR\tessdata 폴더에 복사
# 파이썬 pytesseract 설치
pip install pytesseract
# 파이썬 pillow 설치
pip install pillow
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
text = pytesseract.image_to_string(Image.open("image.png"), lang="kor")
print(text)
print(text.replace(" ", ""))
with open("image.txt", "w", encoding="utf8") as f:
f.write(text)
f.write("\n\n\n")
f.write(text.replace(" ", ""))
2. pyautogui
# PyAutoGUI’s documentation
https://pyautogui.readthedocs.io/en/latest/index.html
# 파이썬 pyautogui 매크로 프로그램 만들기 / 마우스 키보드 자동화 | 파이썬 기초 강의
https://www.youtube.com/watch?v=zl8yTv69jmk
# 설치하기
pip install pyautogui
# numpy 에서 오류 나면 버전을 내려라 (fails to pass a sanity check due to a bug in the windows runtime)
pip install numpy==1.19.3
# opencv 설치
pip install opencv-python
import pyautogui
# 마우스 커서의 좌표 얻기
i = pyautogui.position()
print(i)
# 지정한 좌표로 이동
pyautogui.moveTo(1045, 655)
# 지정한 좌표로 1초 동안에 걸쳐서 이동
pyautogui.moveTo(1045, 655, 1)
# 현재 좌표에서 y축으로 300만큼 1초 동안에 걸쳐서 이동
pyautogui.moveRel(0, 300, 1)
# 현재 좌표에서 x축으로 300만큼 1초 동안에 걸쳐서 이동
pyautogui.moveRel(300, 0, 1)
# 클릭 2번, 간격은 2초 (클릭 후 2초 후 또 클릭)
pyautogui.click(clicks=2, interval=2)
# 더블클릭
pyautogui.click(clicks=2)
pyautogui.doubleClick()
# Hello 입력
pyautogui.typewrite('Hello')
# 키 하나씩 입력 (대괄호 이용)
pyautogui.typewrite(['1', '2', '3', 'enter'])
# 'abc' 이렇게 쓰면 안됨, 키 한개씩 입력해야 함
pyautogui.typewrite(['123', 'enter']) # 실패
import pyautogui # 마우스 좌표 얻기 print(pyautogui.position()) # 마우스 이동 pyautogui.moveTo(x=43, y=114) # 마우스 클릭 pyautogui.click(x=43, y=114)
# opencv 이용
import pyautogui
# 이미지 파일의 위치를 화면에서 찾기
#i = pyautogui.locateOnScreen('y.png')
# 이미지 파일의 중심 좌표 얻기
center = pyautogui.center(i)
# 클릭
pyautogui.click(center)
# 이미지의 중심 좌표 바로 얻기
center = pyautogui.locateCenterOnScreen('y.png')
# 클릭
pyautogui.click(center)
import pyautogui
# 계산기의 숫자 1의 위치를 스크린샷으로 저장
pyautogui.screenshot('1.png', region=(1045, 655, 30, 30))
num1 = pyautogui.locateCenterOnScreen('1.png')
pyautogui.click(num1)
# 파이썬 pyautogui 메세지박스(Message Box) 사용방법 – GUI(그래픽 유저 인터페이스)로 입력받기
https://www.youtube.com/watch?v=3Uzj7Axfrxg
import pyautogui
# btn_1 = pyautogui.alert(button='AAA',text='aaa',title='title')
# print(btn_1)
# print(type(btn_1))
# btn_2 = pyautogui.confirm(text='테스트',title='TITLE',buttons=['1','2','3','4','5'])
# print(btn_2)
# btn_3 = pyautogui.prompt(title='TITLE',default='여기에 쓰세요.',text='텍스트')
# print(btn_3)
btn_4 = pyautogui.prompt('password','비밀번호를 입력하세요.')
# print(type(btn_4))
if btn_4 == '12345':
print('OK')
else:
print('누구냐 넌!')
3. pyinstaller
# 설치
pip install pyinstaller
# 콘솔창 안 뜨게
pyinstaller -w main.py
# 콘솔창 안 뜨게하고 실행파일 하나만 만들기
pyinstaller -w -F main.py
– dist 폴더에 실행 파일 한개가 만들어진다.
4. csv
# 파이썬 기본 패키지
import csv
f = open('sample.csv','a',encoding='utf-8', newline='')
wr = csv.writer(f)
# wr.writerow([1,2,3])
wr.writerows([['123','2123','313231'],[4,5,6],[7,8,9]])
f.close()
f = open('sample.csv','r',encoding='utf-8')
rd = csv.reader(f)
# print(rd)
for i in rd:
print(i)
print(type(i))
f.close()
5. selenium
# 파이썬 자동화 셀레니움(selenium) webdriver와 actionchains으로 웹사이트 매크로 제작 (youtube)
https://www.youtube.com/watch?v=2EBrICPZVLY
# 설치
pip install selenium
# chromedriver 다운로드
https://chromedriver.chromium.org/downloads
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
url = 'https://google.com'
driver.get(url)
driver.maximize_window()
action = ActionChains(driver)
driver.find_element_by_css_selector('#gb_70').click()
action.send_keys('본인아이디').perform()
action.reset_actions()
driver.find_element_by_css_selector('.CwaK9').click()
time.sleep(2)
driver.find_element_by_css_selector('.whsOnd.zHQkBf').send_keys('본인비밀번호')
driver.find_element_by_css_selector('.CwaK9').click()
time.sleep(2)
driver.get('https://mail.google.com/mail/u/0/?ogbl#inbox')
time.sleep(2)
driver.find_element_by_css_selector('.T-I.J-J5-Ji.T-I-KE.L3').click()
time.sleep(1)
send_buton = driver.find_element_by_css_selector('.gU.Up')
(
action.send_keys('보낼메일주소').key_down(Keys.ENTER).pause(2).key_down(Keys.TAB)
.send_keys('제목입니다.').pause(2).key_down(Keys.TAB)
.send_keys('abcde').pause(2).key_down(Keys.ENTER)
.key_down(Keys.SHIFT).send_keys('abcde').key_up(Keys.SHIFT).pause(2)
.move_to_element(send_buton).click()
.perform()
)