Làm cách nào để sử dụng Python (2.7) nhận nội dung của khay nhớ tạm trên máy Mac. Có cách nào tốt hơn làm cho một wrapper xung quanh pbpaste?Python nhận nội dung trong khay nhớ tạm thời
Cảm ơn!
Làm cách nào để sử dụng Python (2.7) nhận nội dung của khay nhớ tạm trên máy Mac. Có cách nào tốt hơn làm cho một wrapper xung quanh pbpaste?Python nhận nội dung trong khay nhớ tạm thời
Cảm ơn!
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.
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.
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'
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 PyPI và Bitbucket.
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.
'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
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
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
Nếu tôi biết PyObjC, tôi sẽ không viết các ứng dụng Mac bằng Python;) –