Crea un servizio di automazione con uno script Python?

3

Sto provando a creare un servizio di automazione che agirà sul testo selezionato, convertendo i trattini in spazi e creando anche limiti di parole per tutto il testo.

Un amico mi ha dato questo script Python (non so nulla di Python o scripting della shell):

#! /usr/bin/python

cliptext = "%clipboard"
print cliptext.replace('-', ' ').replace('%', ' ').replace('&', ' and ').replace('#', ' ').title()

Funziona alla grande come uno snippet di TextExpander, ma mi piacerebbe averlo disponibile anche nel menu Servizi. Non ho bisogno che usi un linguaggio di scripting specifico, deve solo funzionare in Automator. Il mio compagno di codice non ha avuto esperienza con Automator, quindi non ha potuto dare una mano. Il suo script richiede di copiare il testo negli Appunti, quindi esegue la formattazione e incolla il risultato. Mi piacerebbe essere in grado di eseguirlo sul testo selezionato e non dover gestire gli Appunti (almeno manualmente).

L'uso particolare di questo è di rinominare i caricamenti di foto su Flickr, poiché Flickr usa il nome del file per generare il nome della foto. Quando si esportano elementi grafici tramite Photoshop o Illustrator usando Salva per Web, i caratteri minuscoli e i trattini sono le mie impostazioni predefinite. Voglio essere in grado di evidenziare il titolo di Flickr, quindi di eseguire il servizio per riformattare il nome del file in un titolo formattato correttamente.

    
posta George C 05.08.2012 - 17:48
fonte

1 risposta

5

Questo non è troppo difficile da fare, devi solo conoscere la magia giusta. Ti guiderò attraverso.

  1. Apri Automator e, quando viene richiesto di scegliere un tipo per il tuo documento, seleziona Servizio . Se non ti viene richiesto, premi ⌘N per creare un nuovo file di automazione.
  2. Nella parte superiore del riquadro più a destra, assicurati che L'output sostituisce il testo selezionato sia selezionato e che il primo elenco a discesa sia impostato su testo :
    • Puoi cambiare la parte qualsiasi applicazione in un'applicazione specifica se vuoi che funzioni solo in quel programma.
  3. Nella Libreria Azioni nel pannello di sinistra, trova Esegui script di shell e fai doppio clic per aggiungerlo al flusso di lavoro.
  4. Cambia Shell in / usr / bin / python e assicurati che Pass input sia impostato su stdin .
  5. Elimina il testo esistente nella casella dello script e sostituiscilo con il codice seguente.
  6. Salvalo con un nome descrittivo. Automator lo salverà nella cartella ~/Library/Services/ .
  7. Facoltativo: vai a Preferenze tastiera e trova il tuo servizio nella sezione Servizi della scheda Scorciatoie da tastiera . Puoi assegnare una scorciatoia a livello di sistema lì.

Codice script

import sys

for f in sys.stdin:
    print f.replace('-', ' ').replace('%', ' ').replace('&', ' and ').replace('#', ' ').title(),
    
risposta data 05.08.2012 - 18:53
fonte

Leggi altre domande sui tag