पर पाठ भेज सकता है मैं मैक क्लिपबोर्ड में कुछ पाठ रखने के लिए अपने पायथन प्रोग्राम को पसंद करूंगा।पाइथन मैक क्लिपबोर्ड
क्या यह संभव है?
पर पाठ भेज सकता है मैं मैक क्लिपबोर्ड में कुछ पाठ रखने के लिए अपने पायथन प्रोग्राम को पसंद करूंगा।पाइथन मैक क्लिपबोर्ड
क्या यह संभव है?
न्यू जवाब:
This page पता चलता है:
सभी मैक ओएस एक्स संस्करण
अन्य मैक मॉड्यूल के लिए कार्यान्वयन (MacSharedClipboard.py, लिस्टिंग 4 में) पर दो कमांड के शीर्ष पर क्लिपबोर्ड इंटरफ़ेस लागू करता है -लाइन प्रोग्राम जिसे पीबीसीपी कहा जाता है (जो क्लिपबोर्ड को क्लिपबोर्ड में कॉपी करता है) और पीबीपीस्ट ( क्लिपबोर्ड में जो भी टेक्स्ट चिपकाता है) चिपकाता है। उपसर्ग "पीबी" "पेस्टबोर्ड" के लिए है, क्लिपबोर्ड के लिए मैक शब्द।
पुराना जवाब:
जाहिर है तो:
http://code.activestate.com/recipes/410615/
इसे कैसे करना प्रदर्शन एक सरल स्क्रिप्ट है।
संपादित करें: बस एहसास हुआ कि यह कार्बन पर निर्भर करता है, इसलिए आदर्श नहीं हो सकता है ... आप इसका उपयोग करने के लिए थोड़ा सा निर्भर करता है।
निम्न कोड उपयोग PyObjC (http://pyobjc.sourceforge.net/)
from AppKit import NSPasteboard, NSArray
pb = NSPasteboard.generalPasteboard()
pb.clearContents()
a = NSArray.arrayWithObject_("hello world")
pb.writeObjects_(a)
explained in Cocoa documentation के रूप में, नकल तीन कदम की आवश्यकता:
आप ऑब्जेक्ट की सरणी के साथ पेस्टबोर्ड भरें (यहां a
में केवल एक स्ट्रिंग है)।
यदि आप सिर्फ मैक क्लिपबोर्ड में टेक्स्ट रखना चाहते हैं, तो आप शैल के pbcopy कमांड का उपयोग कर सकते हैं।
यदि यह एक सुपर-शॉर्ट पायथन कमांड है, तो आप कमांड के आउटपुट को इस तरह पीबीसीपी पर पाइप कर सकते हैं: पायथन-सी "प्रिंट 'हाय'" | pbcopy। आप लगातार कमांड का एक गुच्छा भी शामिल कर सकते हैं: पायथन-सी 'आयात समय, sys; sys.stdout.write (str (int (time.time()))) '| pbcopy। यह क्लिपबोर्ड पर पिछली नई लाइन के बिना यूनिक्स समय की प्रतिलिपि बनाता है। –
एक आसान तरीका:
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()
यह मेरे ओएस एक्स 10.8 पर काम नहीं कर रहा है। – Vojto
कोड ब्लॉक # 1 संभवतः काम नहीं करता है अगर क्लिपबोर्ड पर लिखा जाने वाला टेक्स्ट यूनिकोड या शैल कैरेक्टर जैसा है। या & कोड ब्लॉक # 2 ओएस एक्स पर एक अतिरिक्त डॉक आइकन बनाता है। मैंने इस प्रश्न का अपना उत्तर प्रदान किया है जिसमें इन मुद्दों का कोई अधिकार नहीं है। –
मैक उसे क्लिपबोर्ड पर यूनिकोड स्ट्रिंग लिखने के लिए कैसे:
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'))
कैसे मैक क्लिपबोर्ड से यूनिकोड स्ट्रिंग पढ़ने के लिए:
import subprocess
def read_from_clipboard():
return subprocess.check_output(
'pbpaste', env={'LANG': 'en_US.UTF-8'}).decode('utf-8')
पायथन 2.7 और पायथन 3.4 दोनों पर काम करता है।
मुझे नहीं पता कि यह इतना छोटा प्यार क्यों प्राप्त करता है, यह इस पृष्ठ पर अब तक का सबसे सुरुचिपूर्ण और विश्वसनीय तरीका है – zsero
धन्यवाद क्यों। मुझे क्लिपबोर्ड के माध्यम से जापानी पाठ को धक्का देने के लिए इस फ़ंक्शन को लिखना आवश्यक था, इसलिए मुझे इसे यूनिकोड के साथ काम करना पड़ा। –
उत्कृष्ट। जेएसटीओआर पीडीएफ फाइलों से निष्कर्षों की सफाई के लिए उपयोगिता समारोह में बहुत उपयोगी; धन्यवाद। – cphlewis
मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मुझे इस समस्या का एक बहुत ही सुरुचिपूर्ण समाधान मिला है।
नामक लाइब्रेरी है PyClip, जो https://github.com/georgefs/pyclip-copycat पर पाया जा सकता है।
वाक्य रचना बहुत सरल (Github रेपो से उदाहरण) है:
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 पाठ
मैं का उपयोग करने का कभी नहीं सोचा था प्राप्त करने के लिए एक कमांड लाइन उपकरण। बिल्कुल सही, धन्यवाद –
वह कोड नमूना यूनिकोड तारों को सही तरीके से संभाल नहीं करता है। मैंने एक अलग जवाब के रूप में एक यूनिकोड-जागरूक समाधान प्रदान किया है। –