Frage

Ich würde mein Python-Programm möchte einen Text in der Mac-Zwischenablage zu stellen.

Ist das möglich?

War es hilfreich?

Lösung

Neue Antwort:

Diese Seite schlägt vor:

  

Implementierung für alle Mac OS X   Versionen

     

Die andere Mac-Modul   (MacSharedClipboard.py, 4 in Listing)   implementiert die Zwischenablage-Schnittstelle auf   oben von zwei Kommandozeilen-Programme   genannt pbcopy (die Kopien Text   Die Zwischenablage) und pbpaste (die   Pasten, was Text in der ist   Zwischenablage). Die Vorsilbe „pb“ steht für   „Pappe“, die Mac Bezeichnung für   Zwischenablage.

Alt Antwort:

Offenbar so:

http://code.activestate.com/recipes/410615/

ist ein einfaches Skript zeigt, wie es zu tun.

Edit:. Nur erkannte dies auf Kohlenstoff basiert, so ist vielleicht nicht ideal sein ... ein bisschen darauf an, was Sie verwenden es für

Andere Tipps

Wie eine Unicode-Zeichenfolge an die Mac-Zwischenablage schreiben:

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'))

Wie eine Unicode-Zeichenfolge aus der Mac-Zwischenablage lesen:

import subprocess

def read_from_clipboard():
    return subprocess.check_output(
        'pbpaste', env={'LANG': 'en_US.UTF-8'}).decode('utf-8')

funktioniert sowohl Python 2.7 und Python 3.4.

Der folgende Code Verwendung PyObjC ( http://pyobjc.sourceforge.net/ )

from AppKit import NSPasteboard, NSArray

pb = NSPasteboard.generalPasteboard()
pb.clearContents()
a = NSArray.arrayWithObject_("hello world")
pb.writeObjects_(a)

erklärt in Cocoa Dokumentation , Kopieren erfordert drei Schritt:

  • erhalten die Pappe
  • clear it
  • füllen

Sie füllen den Karton mit einer Reihe von Objekt (hier a enthalten nur eine Zeichenkette).

Eine einfache Art und Weise:

cmd = 'echo %s | tr -d "\n" | pbcopy' % str
os.system(cmd)

Eine Cross-Plattform Art und Weise:
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()

Ich weiß, das ist ein älterer Beitrag, aber ich habe eine sehr elegante Lösung für dieses Problem gefunden.

Es gibt eine Bibliothek mit dem Namen PyClip , die unter https gefunden werden kann: / /github.com/georgefs/pyclip-copycat .

Die Syntax ist ziemlich einfach (Beispiel aus dem 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()

, sobald Sie clipboard.copy('foo') bestanden haben können Sie einfach cmd + v , um den Text erhalten

, wenn Sie nur Text in die Zwischenablage mac setzen möchten, können Sie die Shell des pbcopy Befehl verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top