HOWTO · Python

Python에서 클립보드에 텍스트 복사

패키지, tkinter 또는 pandas를 사용하여 Python 텍스트를 시스템 클립보드에 복사하는 방법을 알아보세요.

이 페이지의 내용

Python 클립보드 도구는 텍스트를 운영 체제 클립보드로 보내 다른 애플리케이션에 붙여넣을 수 있게 합니다. 일반 텍스트의 경우 pyperclip는 간편한 복사 및 선택적 붙여넣기 API를 제공합니다. 다른 선택지로는 바이트 지향 워크플로를 위한 pyperclip3, 대안으로서의 clipboard와 xerox, GUI 프로그램을 위한 tkinter, 표를 위한 pandas가 있습니다. 클립보드 접근은 운영 체제와 프로그램이 실행되는 세션에 따라 달라집니다.

pyperclip로 텍스트 복사

python -m pip install pyperclip로 패키지를 설치하세요. 아래의 짧은 프로그램은 Python 표준 라이브러리로 실행되며, 패키지와 시스템 클립보드를 사용할 수 있는 환경에서 pyperclip.copy()에 전달할 수 있는 텍스트 값을 표시합니다.

text_to_copy = "Hello, Clipboard!"
print(text_to_copy)
Hello, Clipboard!

그 값을 클립보드로 보내려면 import pyperclip 다음에 pyperclip.copy(text_to_copy)를 사용하세요. 현재 클립보드 텍스트도 읽어야 할 때는 pyperclip.paste()를 사용하세요. 이러한 패키지 호출에는 현재 세션에서 작동하는 클립보드 메커니즘이 필요합니다. 일부 Linux 설정에서는 데스크톱 세션과 클립보드 유틸리티도 필요합니다.

바이트가 필요할 때 pyperclip3 사용

코드에 클립보드에서 가져온 바이트 데이터가 필요할 때는 python -m pip install pyperclip3로 설치하세요. 이 패키지의 copy()와 paste() 연산은 바이트를 처리합니다. 값을 명시적으로 변환하세요. 숫자를 복사하기 전에 str(number).encode("utf-8")를 사용한 다음, 반환된 바이트를 디코딩하고 필요하면 파싱하세요. 클립보드는 원래 Python 객체 유형이 아니라 텍스트나 바이트를 저장합니다.

clipboard 패키지로 텍스트 복사

python -m pip install clipboard로 clipboard 패키지를 설치하세요. 이 패키지는 copy()와 paste()를 제공합니다. 예를 들어 import clipboard as c 다음에 c.copy("Python Clipboard")와 c.paste()를 호출하세요. 두 호출 모두에서 별칭을 일관되게 유지하세요. 이는 텍스트 지향 대안이며, 여전히 호스트 환경의 클립보드 지원에 의존합니다.

또 다른 클립보드 패키지로 xerox 사용

python -m pip install xerox로 설치한 다음, 텍스트에 대해 import xerox, xerox.copy("Python Xerox Example"), xerox.paste()를 사용하세요. 플랫폼 지원과 시스템 종속성은 설치된 패키지 버전과 운영 체제에 따라 달라질 수 있으므로, 클립보드에 접근할 수 없으면 해당 패키지의 설치 안내를 참조하세요.

GUI 애플리케이션에 tkinter 사용

프로그램에 이미 GUI가 있는 경우 tkinter는 윈도우 시스템의 클립보드 메서드를 사용할 수 있습니다. tkinter가 없으면 Python에 tkinter 설치하기를 참조하세요. 그래픽 디스플레이가 필요합니다. 루트 창을 만든 다음 root.clipboard_clear(), root.clipboard_append(text_to_copy), root.update()를 호출하여 텍스트를 보내세요. update()는 Tk 이벤트를 처리합니다. 클립보드 소유권과 프로그램 종료 후의 유지 여부는 윈도우 시스템에 따라 달라집니다. GUI 프로그램은 사용자가 작업하는 동안 이벤트 루프를 활성 상태로 유지할 수 있습니다.

pandas로 DataFrame 복사

표 형식 데이터의 경우 pandas를 설치하고 DataFrame.to_clipboard()를 사용하세요. 예를 들어 df.to_clipboard(index=False, header=False)입니다. 이는 표를 스프레드시트나 다른 표 형식 애플리케이션에 붙여넣을 수 있도록 서식을 지정하는 것으로, 임의의 Python 객체를 복사하는 일반적인 방법은 아닙니다. 두 인수는 행 레이블과 열 이름을 생략합니다. 해당 부분을 포함하려면 어느 한 인수를 제거하세요. 이 호출에도 현재 환경이 지원하는 클립보드 메커니즘이 필요합니다.