2011-08-16 45 views

Trả lời

12

PyObjC là con đường để đi:

#!/usr/bin/python 

from AppKit import * 

pb = NSPasteboard.generalPasteboard() 
pbstring = pb.stringForType_(NSStringPboardType) 
print u"Pastboard string: %s".encode("utf-8") % repr(pbstring) 

này chỉ hỗ trợ văn bản và sẽ trở lại None khác. Bạn cũng có thể mở rộng nó để hỗ trợ các loại dữ liệu khác, xem NSPastboard Class Reference.

2

Bạn có biết PyObjC không? Tôi đoán bạn có thể sử dụng nó để viết một wrapper Py mà giao diện với NSPasteboard. Điều này có thể được "thanh lịch" hơn bắn phá ra pbpaste.

+1

Nếu tôi biết PyObjC, tôi sẽ không viết các ứng dụng Mac bằng Python;) –

13

Bạn đã xem mô-đun xerox chưa?
Đây là vụ phải hỗ trợ Windows, OS X và Linux


Cách sử dụng như sau:

xerox.copy (u'some chuỗi ')

Và để dán :

>>> xerox.paste()
.210 u'some chuỗi'

+0

Tốt hơn (đơn giản hơn, nhẹ hơn) so với câu trả lời được chấp nhận. +1. – noamtm

+0

Có thể hơi quá nhỏ: Trên OS X, mô-đun 'xerox' chỉ là một trình bao bọc xung quanh' pbcopy' và 'pbpaste'. – alexis

5

Sự cố với mô-đun xerox và hầu hết các mẫu mã tôi đã tìm thấy để "lấy nội dung của khay nhớ tạm trên Mac" là chúng chỉ trả lại văn bản thuần túy. Chúng không hỗ trợ siêu liên kết, kiểu và như vậy, vì vậy chúng không thực sự có thể truy cập vào toàn bộ nội dung do các ứng dụng như Microsoft Word và Google Chrome cung cấp.

Đứng trên vai của người khác, cuối cùng tôi đã tìm ra cách để làm điều này. Mô-đun richxerox kết quả có sẵn trên PyPIBitbucket.

Mặc dù câu hỏi này đã cũ, tôi vẫn để lại các đường dẫn ở đây vì tôi liên tục tìm lại trang này thông qua Google trong khi tìm kiếm câu trả lời.

+0

'richxerox' trông tuyệt vời! Tôi đã tìm kiếm một cái gì đó như thế này. Gây rối trục trặc: mặc dù nó cài đặt trên Python 3, đó là mã Python 2. Tại sao? Nó dễ dàng nâng cấp. – alexis

+0

Tôi có nghĩa là phiên bản 'pip' được cài đặt (0.129) có các câu lệnh' print' không có dấu ngoặc đơn, nó có 'iteritems()', vv. Nó không tương thích với python 3 và lỗi trên 'import richxerox'. Có một phiên bản tôi có thể hỏi 'pip' cho những gì sẽ làm việc? Cái nào? (Tôi yêu cầu điều này bởi vì tôi thấy một báo cáo lỗi tháng tuổi về các phiên bản gần đây bị hỏng). – alexis

+0

Ha, tôi đoán đó là một vấn đề ngữ nghĩa: '129> 6' :-) Tôi sẽ tìm phiên bản chính xác, cảm ơn. (Thật không may 'pip' không thể xây dựng PyObjC trên hộp El Capitan của tôi, vì vậy tôi sẽ không thể thử nghiệm nó với python 3.) – alexis

Các vấn đề liên quan