파이썬으로 클립보드를 조작할 수 있는 모듈이다. 온라인 오픈소스 책인 invent with python 으로도 유명한 al sweigart 의 책에도 소개된 모듈이다. 간단하지만 업무자동화를 위해 유용하게 사용할 수 있는 모듈이다.

 

인터넷 등에서 클립보드에 복사한 내용을 바로 파이썬 변수로 불러올 수 있다.

 

 

asweigart/pyperclip

Python module for cross-platform clipboard functions. - asweigart/pyperclip

github.com

https://inventwithpython.com/

 

Invent with Python

Python Crash Course - Excellent beginner book on par with "Automate the Boring Stuff with Python". Teach Your Kids to Code - A great book for parents and teachers who want to help young adults learn to program. Learn to Program with Minecraft - If your kid

inventwithpython.com

현재는 텍스트만 다룰 수 있다. 크로스플랫폼에 관한 사항은 저자 깃헙에서 확인할 수 있으나 윈도우의 경우 설치 후 바로 사용가능하다. 이 포스팅은 윈도우10을 기준으로 설명한다.

 

설치 및 기본 사용법

 

설치는 아래와 같다.

pip install pyperclip

설치완료 메시지

용량이 작아서 설치가 빠를 것이다.

 

우선 가장 간단한 것 부터 해본다. 먼저 인터넷의 글들을 클립보드에 복사한다.

 

글들을 드래그 지정해서 [Ctrl+C] 로 복사한다. 이 내용을 변수로 가져올 것이다.

 

 

아래 세줄의 코드를 사용한다.

 

클립보드의 복사된 내용을 text 변수에 저장한 후 콘솔에 출력한다.

 

import pyperclip

text = pyperclip.paste()
print(text)

실행하면 위와 같이 복사가 된다. 만약에 한글이 터미널에서 출력이 안되는 경우가 있다면 CMD 명령 프롬프트에서 아래와 같이 입력한다.

 

chcp 65001

유니코드 UTF-8 로 터미널 코드환경을 바꿔준다. 윈도우에서 보통 한글출력이 애를 먹는 경우 cmd 의 속성을 확인하면 chcp 949 (한글) 로 되어 있다. 그럴때는 위의 입력으로 UTF-8 환경으로 바꿔주면 잘 작동한다.

 

클립보드 내용 파일에 쓰기

import pyperclip

text = pyperclip.paste()

with open('clipboard.txt','w',encoding='utf8') as file:
    file.write(text)

 

 

이 전의 코드를 사용해서 콘솔에 출력해봤다. 텍스트를 콘솔에 출력할 수 있다는 것은 텍스트 파일을 만들 수 있다는 말과 같다. 그대로 쓰기모드로 파일을 오픈하여 기록한다. 주의할 점은 파일 오픈시에 encoding을 utf8 로 넣어준다.

 

실행하면 끝까지 txt 파일에 들어간다.

 

텍스트 조작하기

이 방법은 문자열 함수들과 조합하여 유용하게 사용할 수 있다.

 

또 문자열을 복사해와서 정규식 분석에 활용할 수 있다.

 

import pyperclip

text = pyperclip.paste()

lines = text.split('\n')
for i in range(len(lines)):
    lines[i] = str(i) + ' : ' + lines[i]

text = '\n'.join(lines)
pyperclip.copy(text)

print('==================================================')
print(text)
print('==================================================')
print()

for i in range(5):
    print(lines[i])

 

인터넷에서 긁어온 텍스트를 문자열 함수를 사용해서 분리하여 맨 앞줄에 숫자 번호를 붙여준다. split()

 

작업이 다 끝나면 join() 으로 합친다.

 

클립보드에 다시 복사해주면 바깥에서도 사용할 수 있다.

 

이 소스코드가 하는일은 텍스트를 가져와서 한줄씩 분리시키고 split('\n') 각 줄을 편집한 후 합치는 것이다. 합친 text 변수를 다시 클립보드에 올려놓으면 프로그램 바깥에서 사용이 가능하다.

 

또 lines 리스트에 분리시켜서 복사를 해 두었으니 한 줄 한 줄 조작하는 것도 가능하다. 예를 들어 정규식을 검사하여 숫자를 추출해 내거나 할 수 있다.

 

결과창

아쉽게도 현재는 클립보드에 저장된 텍스트만 지원한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band