Search

맥에서의 파이썬언어를 사용한 자동화

Mac 컴퓨터에서는 Python 언어를 사용하여 자동화 프로그램을 작성할 수 있습니다. 다음과 같은 절차를 따르면 됩니다:
2.
필요한 패키지 설치: pyobjc-framework-Quartzpyperclip 패키지를 설치합니다. Terminal에서 다음 명령어를 입력합니다:
sudo pip install pyobjc-framework-Quartz pyperclip
Plain Text
복사
3.
아래의 코드를 복사하여 Python 스크립트 파일에 붙여넣습니다:
import time import pyperclip from Quartz import ( CGEventCreateKeyboardEvent, CGEventPost, kCGHIDEventTap, kCGEventKeyDown, kCGEventKeyUp, kCGEventFlagMaskCommand, kCGEventFlagMaskShift, kCGEventFlagMaskControl, kCGEventFlagMaskAlternate, kCGEventFlagMaskSecondaryFn, ) def main(): # Paste clipboard contents pyperclip.copy("") CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, True)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, False)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, True)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, False)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 31, True)) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 8, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 8, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 31, False), ) time.sleep(0.1) # Copy 300 characters at a time to clipboard and paste text = pyperclip.paste() while text: chunk = text[:300] pyperclip.copy(chunk) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent( None, 9, True, kCGEventFlagMaskCommand | kCGEventFlagMaskShift, ), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 7, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 7, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent( None, 9, False, kCGEventFlagMaskCommand | kCGEventFlagMaskShift, ), ) pyperclip.copy("") time.sleep(0.1) text = text[300:] pyperclip.copy(text) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent( None, 9, True, kCGEventFlagMaskCommand, ), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 8, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 8, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent( None, 9, False, kCGEventFlagMaskCommand, ), ) pyperclip.copy("") time.sleep(0.1) if __name__ == "__main__": main()
Python
복사
4.
스크립트에서 "" 를 대상 메모장의 내용으로 변경하고, 필요한 경우 300을 변경하여 더 많은 문자를 복사하거나 더 적은 문자를 복사할 수 있습니다.
5.
스크립트를 실행할 때, 원하는 언어로 작성된 메모를 복사합니다.
6.
스크립트를 실행하면, 복사된 메모의 내용이 자동으로 붙여넣기됩니다.
참고: 이 스크립트는 필요한 경우 수정할 수 있습니다. 이 스크립트를 사용함으로써 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.
아래 내용은 발리 출발전여행안내문입니다. 단락별로 나눠서 위와 같이 메모장에 있는 내용을 카카오톡으로 복사 붙여넣기 하고 싶습니다. 자동화로 어떤 방법이 있을까요?
Mac 컴퓨터에서는 Python 언어를 사용하여 자동화 프로그램을 작성할 수 있습니다. 다음과 같은 절차를 따르면 됩니다:
2.
필요한 패키지 설치: pyobjc-framework-Quartzpyperclip 패키지를 설치합니다. Terminal에서 다음 명령어를 입력합니다:
sudo pip install pyobjc-framework-Quartz pyperclip
Plain Text
복사
3.
아래의 코드를 복사하여 Python 스크립트 파일에 붙여넣습니다:
import time import pyperclip from Quartz import ( CGEventCreateKeyboardEvent, CGEventPost, kCGHIDEventTap, kCGEventKeyDown, kCGEventKeyUp, kCGEventFlagMaskCommand, kCGEventFlagMaskShift, kCGEventFlagMaskControl, kCGEventFlagMaskAlternate, kCGEventFlagMaskSecondaryFn, ) def main(): # Paste clipboard contents pyperclip.copy("") CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, True)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, False)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, True)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, False)) time.sleep(0.1) CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 31, True)) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 8, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 8, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 31, False), ) time.sleep(0.1) # Copy 300 characters at a time to clipboard and paste text = pyperclip.paste() while text: chunk = text[:300] pyperclip.copy(chunk) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 9, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent( None, 9, True, kCGEventFlagMaskCommand | kCGEventFlagMaskShift, ), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 7, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 7, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent( None, 9, False, kCGEventFlagMaskCommand | kCGEventFlagMaskShift, ), ) time.sleep(0.1) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 36, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 36, False), ) text = text[300:] time.sleep(0.1) # Close document and quit application CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 12, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 12, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 12, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 12, False), ) time.sleep(0.1) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 3, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 3, False), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 76, True), ) CGEventPost( kCGHIDEventTap, CGEventCreateKeyboardEvent(None, 76, False), ) if __name__ == "__main__": main()
Python
복사
4.
위 코드에서 CGEventPost 함수의 time.sleep() 부분은 건너뛰어도 됩니다. 이 코드는 마우스 클릭과 키보드 입력 사이의 딜레이를 추가하기 위해 사용됩니다. 만약 프로그램이 작동하지 않는다면 이 부분을 제거해 보세요.
5.
작성한 Python 스크립트 파일을 실행합니다. 이를 위해서는 Terminal에서 다음 명령어를 입력합니다:
python [파일 경로]
Plain Text
복사
예를 들어, 파일이 바탕화면에 있고 파일 이름이 notion_to_kakaotalk.py라면 다음과 같이 입력합니다:
python ~/Desktop/notion_to_kakaotalk.py
Plain Text
복사
6.
프로그램이 실행되면 Notion 문서를 열고 command + a를 눌러 전체 문서를 선택합니다. 그리고 command + c를 눌러 문서 내용을 복사합니다.
7.
KakaoTalk을 열고 메시지를 작성할 채팅방을 선택합니다. 그리고 command + v를 눌러 복사한 내용을 붙여넣습니다. 이제 여행안내문의 각 단락이 카카오톡 메시지로 복사되었습니다.
자동화 프로그램을 작성하는 것은 초보자에게는 어려울 수 있습니다. 따라서 이 방법이 복잡하다면, 수동으로 복사하여 붙여넣는 방법을 사용하는 것이 더 나을 수 있습니다.
출발전 마지막 점검차 안내드립니다. A)발리도착후 발리는 도착 비자가 적용되는 지역으로 도착후 비자를 구매하게 되어있습니다. 달러 38$ 또는 한국돈 68,000 원 또는 카드 사용도 가능합니다, 그래도 빠르게 구매후 나가시려면 현금을 미리 준비해주시면좋을것 같습니다. 밖으로 나가셔서 두분 영문성함을 찾아주시면 가이드 분과 미팅하시게 됩니다. 간혹 연착 등으로 미팅이 잘 안된 경우에는 빠르게 현지 연락처로 연락주시면 좋을것 같습니다.
★환전과 관련한 사항 발리지역은 "루피아 " 를 씁니다. 루피아는 단위도 다르지만 한국에서는 환전이 안되기 때문에, 달러환전후 현지돈을 쓰셔야 할 일이 있으시다면 100불 단위로 현지 환전소를 통해 환전하여 사용가능하십니다. 가이드분에게 문의 해 주시면 환전소도 안내드릴겁니다.
★로밍 VS 유심 VS 와이파이도시락 VS eSIM 로밍은 자동로밍이 되니 현지에 도착후 현지전화로 바로 바뀜니다. 유심은 현지유심을 구매하는것으로 공항도착후 찾게 되시거나 하실텐데, 비교해 보자면 요금적으로는 현지유심 < 와이파이도시락 < 로밍 순으로 현지유심이 금액적 유리함을 가지고 있습니다. 현지 통신망을 이용하게 되긴하나 심카드가 완전 바뀌게 됨으로 한국연락처가 없어집니다. 그럼, 한국에서는 전원이 꺼진채로 되어있어 많이 걱정하시게 됩니다. 리조트 등에서는 와이파이가 잘 터지기 때문에 자동로밍 하여 비행기모드와 와이파이 모드를 적절히 사용하면 비용이 절약되기도 합니다. 인터넷 속도 면에서는 로밍 > 유심 > 와이파이 도시락 순이 아닐까 싶습니다. 약간의 의견차이는 있을수 있으나 거의 정설 입니다. 그리고 요즘엔 eSIM 이 나와서 현지 eSIM 을 장착 하시는경우도 있다는 얘기만 들었지, 아직 많이 사용하신분들이 없어서 딱, 말씀드리기 어렵지만, 현지 유심카드를 실물이 아닌 방식으로 넣는것이기에 기대효과는 유심과 동일합니다.
막연하게 유심으로 갈아끼우셔서 부모님과 연락이안될경우 매우 걱정하시게되므로, 이러한 사정을 미리 알려드리고
" 비상 연락처 " 로 윤지열이사 010-6465-0306 번호를 부모님꼐 안내드려도 좋을것 같습니다. 부모님들이 고객님과 연락이 닿지 않으면, 저에게 연락 주시면 제가 현지에 연락하여 빠르게 상황파악이 가능합니다.
★ 일정진행 일정은 선택형일정을 현지에 도착하여 가이드 분께 다시금 설명을 듣고 일정을 정하시게 될텐데요. 기존 18가지 14가지 13가지, 가짓수 보다 하루에 1개 할 일정 시간 뿐이 안됩니다. 그러니 어떤 일정은 너무 멀리 있어서 새벽에 일어나서 출발해야하기도 하구요. 날씨가 더우니 고객님의 몸컨디션을 감안하여 일정을 진행하시기를 바랍니다.
★ 가이드 기사 팁? 기본적으로 포함되어있으나, 단독으로 1쌍만 진행을 해주다 보니 이부분을 신경쓰지 않을수가 없습니다. 너무 잘해줬다 싶으시면 1인 50불씩 100불을 마지막날, 가이드 70$, 기사 30$ 정도로 나눠주시면 이분들에게는 너무나 감사한 부분일 것입니다.
★현지에서 아프거나 할때는? 현지에서 감기걸리는 일도 있고, ( 에어컨바람과 밖의 날씨차가 크기 때문에 ) 긴팔 하나 정도는 꼭 가지고 가시라고 말씀드리는데요. 두분도 긴팔 꼭 가져가시고, 간단한 상비약 은 준비해주셔도 좋습니다. 물론 인천공항에도 약국이 있어서 상비약을 판매하고는 있습니다. 그리고 몸 컨디션이 너무 안좋으면 일정도 일정이지만, 즉각적으로 가이드 또는 비상연락처를 통해 조치를 받으시기를 바랍니다. 해외에서 병원에 가실경우 영수증을 꼭 가지고 오셔야 보험 적용대상일 경우 보험처리를 받으실수있습니다. 실제예) 밤에 배가아퍼서 급하게 병원에 가야할경우가 가장 많았습니다. 물은 꼭 생수를 이용해주시고, 시장이나 길거리 음식을 사드실때는 주의해 주시기 바랍니다.
★물건 분실 주의 핸드폰, 카메라 등 귀중품을 잘 챙기지 않아 잃어버리게 되면 너무 속상합니다. 꼭 여권과 티켓 그리고 귀중품들은 잘 챙겨주세요. 귀중품을 간혹 붙이는짐 ( 수하물 ) 에 넣을경우 분실되는 경우도 있습니다. 항공법상 보안점검으로 임의로 열쇠가 있어도 가방을 열수 있게 되어있습니다. 간혹 고가의 명품신발등이 없어지기도 하고 많은 에피소드가 생기게 되는되요. 여행 짐 챙기실때 이런부분을 감안하여 너무 고가의 소지품은 피하시는편이 낫습니다.
출발전 짐싸기 TIP * (1) 멀티탭 : 멀티탭 하나면 전자기기들 모두 충전 가능합니다. 호텔가면 여기에 하나, 저기에 하나, 이렇게 놔둬어서 귀국시 놓고 오는 일도 있습니다. (2) 샴푸,린스, 화장품등의 액체류 : 물론 호텔에 비치되어있지만, 여성분들같은 경우 본인이 사용하는 제품을 가지고 다니시기 때문에 통채로 넣어서 간혹 공항에서 뺏기고 못가지고 가는경우도 발생합니다. 다이소에가면 작은용기를 따로 팝니다. 거기에 담아가셔도 좋을것 같습니다. 그리고 안내문에 보면 인천공항에서 50ml 100ml 품목별로 안된다고 써있으니, 꼭 참고하셔서 공항에서 버리는 일이 없기를 바랍니다. 남자분들같은 경우에는 거의 라이타를 많이 버리기도 합니다.
이정도면 여행다녀오시는데 큰 지장 없으시겠지요? 혹시라도 현지에서 무슨 문제 생기시면 마음에 담아두시지 마시고, 미리 연락주셔서 적절한 조치를 받으시기 바랍니다. 마음에 담아 두셧다가 돌아오셔서 뭐라 하시면, 모른척 할거예요. ^^
결혼 진심으로 축하드리고, 고객님께 언제나 좋은일만 생기기를 기도합니다.