Python은 Mac 클립 보드에 텍스트를 보낼 수 있습니다
문제
파이썬 프로그램이 Mac 클립 보드에 텍스트를 배치하기를 바랍니다.
이게 가능해?
해결책
새로운 답변 :
이 페이지 제안:
모든 Mac OS X 버전에 대한 구현
다른 MAC 모듈 (MacSharedClipboard.py, Listing 4)은 PBCopy (클립 보드에 텍스트를 복사하는)와 PBPASTE (클립 보드에있는 텍스트를 붙이는)라는 두 가지 명령 줄 프로그램 위에 클립 보드 인터페이스를 구현합니다. 접두사 "PB"는 클립 보드의 MAC 용어 인 "Pasteboard"를 나타냅니다.
오래된 답변 :
분명히 :
http://code.activestate.com/recipes/410615/
방법을 보여주는 간단한 스크립트입니다.
편집 : 이것이 탄소에 의존한다는 것을 깨달았으므로 이상적이지 않을 수도 있습니다.
다른 팁
Mac 클립 보드에 유니 코드 문자열을 작성하는 방법 :
import subprocess
def write_to_clipboard(output):
process = subprocess.Popen(
'pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=subprocess.PIPE)
process.communicate(output.encode('utf-8'))
Mac 클립 보드에서 유니 코드 문자열을 읽는 방법 :
import subprocess
def read_from_clipboard():
return subprocess.check_output(
'pbpaste', env={'LANG': 'en_US.UTF-8'}).decode('utf-8')
Python 2.7 및 Python 3.4에서 작동합니다.
다음 코드는 pyobjc를 사용합니다 (http://pyobjc.sourceforge.net/)
from AppKit import NSPasteboard, NSArray
pb = NSPasteboard.generalPasteboard()
pb.clearContents()
a = NSArray.arrayWithObject_("hello world")
pb.writeObjects_(a)
처럼 코코아 문서에 설명되었습니다, 복사에는 세 단계가 필요합니다.
- 페이스트 보드를 얻으십시오
- 그것을 지우십시오
- 채우십시오
페이스트 보드에 객체 배열을 채 웁니다 (여기 a
하나의 문자열 만 포함).
간단한 방법 :
cmd = 'echo %s | tr -d "\n" | pbcopy' % str
os.system(cmd)
교차 플랫폼 방법 :
https://stackoverflow.com/a/4203897/805627
from Tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.destroy()
나는 이것이 오래된 게시물이라는 것을 알고 있지만이 문제에 대한 매우 우아한 해결책을 찾았습니다.
이름이 지정된 라이브러리가 있습니다 파이 클립, 찾을 수 있습니다 https://github.com/georgefs/pyclip-copycat.
구문은 매우 간단합니다 (Github Repo의 예) :
import clipboard
# copy some text to the clipboard
clipboard.copy('blah blah blah')
# get the text currently held in the clipboard
text = clipboard.paste()
당신이 지나간 후 clipboard.copy('foo')
당신은 그냥 할 수 있습니다 CMD + v 텍스트를 얻으려면
Mac 클립 보드에 텍스트를 넣고 싶다면 Shell의 PBCopy 명령을 사용할 수 있습니다.