python 은 PyAutoGUI 를 이용 하여 자동화 작업 스 크 립 트 를 빠르게 구축 합 니 다.

배경
안녕하세요,저 는 안과 입 니 다!
우 리 는 웹 페이지 에 표를 작성 하고 웹 버 전 OA 를 조작 하 며 자동화 테스트 를 하거나 새로운 시스템 에 처음으로 데 이 터 를 추가 하 는 등 대량의 중복 작업 을 해 야 할 때 를 자주 만난다.
이런 조작의 특징 은 흔히 데이터 가 같은 구조 이 고 대부분이 이미 있 는 구조 화 된 데이터 이다.조작 이 비교적 딱딱 하고 모두 같은 절차 의 클릭,입력 이다.데이터 양 이 많아 조작 자의 정력 을 크게 소모 하 다.
그럼 자동화 할 수 있 을까요?
2.자동화 방안
웹 에서 조작 하면 Python 의 Selenium 은 요 구 를 만족 시 킬 수 있 습 니 다.GUI 인터페이스 조작 이 필요 하 다 면'버튼 엘 프'가 요 구 를 충족 시 킬 수 있 는 지 시험 해 봐 야 할 것 같 습 니 다.새 시스템 에 초기 데 이 터 를 추가 하고 SQL 내 보 내기 가 가장 효율 적 인 방식 이지 만 복잡 한 처리 가 필요 할 수 있 습 니 다.
오래된 데 이 터 를 수 동 으로 입력 하 라 는 시스템 업그레이드 활동 을 여러 차례 만 났 다.
그러나 이상 에 문제 가 존재 합 니 다.Selenium 은 복잡 하고 버튼 엘 프 의 기능 이 완선 되 지 않 습 니 다.SQL 은 일정한 지식 기반 이 필요 합 니 다.
더 좋 은 해결 방안 을 추천 합 니 다:PyAutoGUI 
사실 PyAutoGUI 의 가장 큰 장점 은 간단 하 다 는 것 이다.응급 사용 하면 사용 가능 한 자동화 작업 스 크 립 트 를 신속하게 구축 할 수 있다.데이터 처리 임무 가 워낙 급박 해서 복잡 한 지식 을 사용 하여 완벽 한 스 크 립 트 를 구축 할 시간 이 없다
3.사고방식 과 지식
이제 기본 적 인 사고 와 관련 지식 을 말씀 드 리 겠 습 니 다.
  • PyAutoGUI 는 아 날로 그 키보드,마우스 가 인터페이스 에서 작 동 하 는 것 이다.
  • 마우스 클릭 을 모 의 하기 위해 클릭 기능 만 사용 합 니 다.
  • 클릭 할 위 치 를 얻 기 위해 마우스 좌 표를 가 져 오 는 프로그램 을 설계 했다.
  • ASCII 코드 의 입력 은 비교적 간단 하 다.한자 입력 문 제 를 다시 해결 하면 시스템 이 기본적으로 사용 할 수 있 게 된다.
  • 본 고 는 웹 인터페이스 에서 데이터 기록 을 대량으로 추가 하 는 것 을 예 로 들 어 어떻게 자동화 작업 을 하 는 지 설명 한다.이 예 는 단지 시범 용 일 뿐,매우 간단 하 며,모두 가 스스로 이해 하고 이전 한다.

    4.조작 절차
    4.1 초보 PyAutoGUI
    쉽게 말 하면 PyAutoGUI 는 아 날로 그 키보드,마우스 가 인터페이스 에서 작 동 하 는 가방 이다.설치 할 때 다음 문 구 를 직접 사용 합 니 다:pip install pyautogui 를 사용 하면 됩 니 다.
    간단 한 테스트 프로그램 을 만 듭 니 다:
    
    import pyautogui as pag
    
    pag.PAUSE = 1.5
    pag.click(63,191) 
    이 프로그램 가 져 오기 라 이브 러 리 는 각 단계 의 일시 정지 시간 1.5 초(작업 시간 남 겨 주기)를 정의 한 다음 화면 왼쪽 에서 63 픽 셀,위 에서 191 픽 셀 이라는 점 에서 마 우 스 를 클릭 했다.
    4.2 좌표계
    PyAutoGUI 의 기본 좌 표 는 화면 왼쪽 상단 에서 시작 하여 x 축 이 오른쪽 으로 커지 고 y 축 이 아래로 커진다.그래서 모니터 에 점 마다 위치 가 있 습 니 다.
    인터페이스 에 있 는 모든 단추 의 위 치 를 알 았 을 때 이 점 을 클릭 하면 해당 하 는 조작 을 수행 하 는 것 입 니 다.
    물론 이 모든 전 제 는 인터페이스 가 변 하지 않 는 다 는 것 이다.대부분의 응용 인터페이스,버튼 위치 가 바 뀌 지 않 습 니 다.만약 당신 이 이 방면 의 수요 가 있다 면,locateOnScreen()함 수 를 참고 할 수 있 습 니 다.이 함 수 는 당신 이 제공 한 그림 에 따라 화면 에서 픽 셀 이 일치 하 는 곳 을 찾 습 니 다.이렇게 하면 버튼 이 움 직 이 는 것 을 두려워 하지 않 는 다.
    화면의 좌 표를 가 져 오기 위해 간단 한 프로그램 을 써 서 화면 에 있 는 좌 표를 가 져 옵 니 다.여러분 은 스스로 다운로드 하여 운행 할 수 있 습 니 다.
    
    import pyautogui as pag 
    import os 
    
    try:
        while True:
            os.system('cls')
            a = '%4d,%4d'%pag.position()
            print(a)
    except Exception as e:
        print(e) 
    상기 프로그램 을 실행 하고 마 우 스 를 각 단추 로 이동 하면 상응하는 좌 표를 볼 수 있다.

    4.3 클릭
    PyAutoGUI 의 클릭 은 매우 간단 합 니 다.
    
    pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0)
    그 중에서 x,y 는 좌표 이 고 clicks 는 클릭 횟수 이 며 interval 은 클릭 간격 이다.button 은 세 개의 마우스 버튼 중 어느 것 을 가리 키 며 duiation 은 클릭 사이 의 간격 이다.
    작업,시간,새 단추 사이 의 점프 를 위해 다음 프로그램 을 쓰 십시오.
    
    pag.click(63,191)
    pag.click(328,191)
    pag.click(384,461)
    pag.click(374,191)
    4.4 입력
    ASCII 문자 와 키보드 키,단축 키 를 각각 다음 과 같이 입력 하 십시오.
  • ASCII 문자열 을 입력 하면 type:write(message='test message.',interval=0.5)
  • 종료 키 는 press('esc')
  • 누 르 면 KeyDown('ctrl')
  • 놓 으 면 KeyUp('ctrl')
  • 조합 키 는 hotkey(ctrl,v)입 니 다.
  • 한자 에 대해 서 는 좀 복잡 하 다.
    4.5 한자 입력
    한자 와 관련 하여 ASCII 방안 으로 해결 할 수 없습니다.패키지 pyperclip 을 가 져 와 야 합 니 다.이 가방 은 시스템 클립보드 로 봉 인 했 습 니 다.어떻게 된 일 인지 아 시 죠?
    
    import pyperclip 
    
    #      ,          。
    pyperclip.copy('       ')
    #      ,    。
    pag.hotkey('ctrl','v')
    사실은 pyperclip 시 뮬 레이 션 으로 복사 하고 단축 키 Ctrl+v 로 붙 여 넣 어서 비 ASCII 문자 의 입력 을 실현 한 것 입 니 다.
    4.6 집적
    다음은 전체 프로그램 을 통합 해서 보 겠 습 니 다.
    
    import pyautogui as pag
    import pyperclip
    
    pag.PAUSE = 1.5
    pag.FAILSAFE = True
    
    to = ['    1','    2','    3','    4','    5',\
          '    6','    7','    8','    9','    10']
    
    for t in to:
        pag.click(63,191)
        pyperclip.copy(t)
        pag.hotkey('ctrl','v')
        pag.click(328,191)
        pag.click(384,461)
        pag.click(374,191)
    상기 프로그램 은 to 목록 내용 에 따라 조작 을 클릭 과 붙 여 넣 기 로 분해 하여 자동화 작업 의 목적 을 실현 했다.대부분의 인 코딩 은 이해 하기 쉬 워 마우스 조작 과 일일이 대응 할 수 있다.어 려 운 것 은 데이터 원본 의 문제 일 수도 있 습 니 다.모든 데 이 터 를 프로그램 에 쓸 수 는 없 겠 죠?
    데이터 원본
    복잡 한 현실 데이터 원본 에 비해 가장 좋 은 방법 은 데 이 터 를 csv 파일 로 바 꾸 는 것 이다.이렇게 많은 엑셀 은 이 파일 로 따로 저장 할 수 있 고 그 자체 가 텍스트 에 기반 한 것 이기 때문에 읽 을 수 있 고 쓸 수 있 으 며 비교적 편리 하 다.SQL 데이터베이스,XML 데이터 와 같은 다른 데이터 도 csv 파일 로 내 보 낼 수 있 습 니 다.
    현재 csv 형식 데이터 원본 data.csv 가 있다 고 가정 하면 이렇게 해 야 합 니 다.
    
    to = []
    
    with open('data.csv')as f:
        lines = f.readlines()
    
    for line in lines:
        to.append(tuple(line.split(',')))
    상기 코드 는 비교적 간단 합 니 다.csv 에 저 장 된 데 이 터 를 to 라 는 배열 에 저장 합 니 다.모든 줄 의 데 이 터 는 하나의 원 그룹 입 니 다.호출 할 때 4.6 부분 코드 와 같이 for 순환 에 원 그룹 아래 표 시 를 하면 됩 니 다.
    총화
    본 고 는 PyAutoGUI 패 키 지 를 사용 하여 각종 마우스 클릭,입력 과 같은 기계 중복 조작 을 자동 으로 실행 하면 작업 효율 을 대폭 높 일 수 있다.여 기 는 click 기능 과 pyperclip 패키지 의 copy 기능 만 사용 합 니 다.주로 프로 그래 밍 을 간소화 하고 긴장 되 고 번 거 로 운 작업 에서 자동 으로 실행 되 는 작은 스 크 립 트 를 빠르게 만 들 기 위해 서 입 니 다.
    이상 은 python 이 PyAutoGUI 를 이용 하여 자동화 작업 스 크 립 트 를 신속하게 구축 하 는 상세 한 내용 입 니 다.python 이 PyAutoGUI 로 자동화 작업 스 크 립 트 를 구축 하 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기