Domanda

Vorrei che il mio programma Python inserisse del testo negli Appunti del Mac.

È possibile?

È stato utile?

Soluzione

Nuova risposta:

Questa pagina suggerisce:

  

Implementazione per tutti i Mac OS X   Versioni

     

L'altro modulo Mac   (MacSharedClipboard.py, nel Listato 4)   implementa l'interfaccia degli appunti su   in cima a due programmi da riga di comando   chiamato pbcopy (che copia il testo in   negli appunti) e pbpaste (che   incolla qualunque testo sia presente nel   clipboard). Il prefisso "pb" sta per   & Quot; cartone, " il termine Mac per   Appunti.

Vecchia risposta:

Apparentemente così:

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

è un semplice script che dimostra come farlo.

Modifica: ho appena realizzato che si basa su Carbon, quindi potrebbe non essere l'ideale ... dipende un po 'da cosa lo stai usando.

Altri suggerimenti

Come scrivere una stringa Unicode negli Appunti 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'))

Come leggere una stringa Unicode dagli Appunti di Mac:

import subprocess

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

Funziona su Python 2.7 e Python 3.4.

Il codice seguente utilizza PyObjC ( http://pyobjc.sourceforge.net/ )

from AppKit import NSPasteboard, NSArray

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

As spiegato nella documentazione di Cocoa , la copia richiede tre passaggi:

  • ottieni il pannello di montaggio
  • cancellalo
  • riempilo

Riempi il pannello di controllo con una matrice di oggetti (qui a contiene solo una stringa).

Un modo semplice:

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

Un modo multipiattaforma:
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()

So che questo è un post precedente, ma ho trovato una soluzione molto elegante a questo problema.

Esiste una libreria denominata PyClip , che si trova in https: / /github.com/georgefs/pyclip-copycat .

La sintassi è piuttosto semplice (esempio dal repository 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()

dopo aver superato clipboard.copy ('pippo') puoi semplicemente cmd + v per ottenere il testo

se volessi solo inserire del testo negli appunti del mac, potresti usare il comando pbcopy della shell.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top