6 votos

Crear un servicio de Automator con un script de Python</strkeep><strkeep>?

Estoy intentando crear un servicio de Automator que actúe sobre el texto seleccionado, convirtiendo los guiones en espacios, y también haciendo mayúsculas para todo el texto.

Un amigo me regaló este script de Python (no sé nada de Python ni de shell scripting):

#! /usr/bin/python

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

Funciona muy bien como un fragmento de TextExpander, pero me gustaría tenerlo disponible también en el menú de Servicios. No necesito que utilice ningún lenguaje de scripting específico, sólo necesita ejecutarse dentro de Automator. Mi amigo codificador no tiene experiencia con Automator, así que no puede ayudar. Su script requiere copiar el texto en el portapapeles, y luego ejecuta el formato y pega el resultado. Me gustaría ser capaz de ejecutar esto en el texto seleccionado y no tener que lidiar con el Portapapeles (al menos manualmente).

El uso particular de esto es para renombrar las subidas de fotos en Flickr, ya que Flickr utiliza el nombre del archivo para generar el nombre de la foto. Al exportar las obras de arte a través de Photoshop o Illustrator utilizando Save For Web, las minúsculas y los guiones son mi configuración por defecto. Quiero ser capaz de resaltar el título de Flickr, y luego ejecutar el Servicio para reformatear el nombre del archivo a un título con el formato adecuado.

8voto

Ged Byrne Puntos 481

Esto no es demasiado difícil de hacer, sólo hay que conocer la magia adecuada. Te guiaré a través de ella.

  1. Abra Automator y, cuando se le pida que elija un tipo de documento, seleccione Servicio . Si no se le pide, sólo tiene que pulsar ⌘N para crear un nuevo archivo de Automator.
  2. En la parte superior del panel de la derecha, asegúrese de que La salida reemplaza el texto seleccionado está marcada, y el primer desplegable se establece en texto : service input settings
    • Puede cambiar el cualquier aplicación parte a una aplicación específica si sólo quieres que funcione en ese programa.
  3. En la Biblioteca de Acciones del panel izquierdo, busque Ejecutar Shell script y haga doble clic en él para añadirlo al flujo de trabajo.
  4. Cambiar el Shell bajar a /usr/bin/Python y asegúrese de que Pasar la entrada se ajusta a stdin .
  5. Elimine el texto existente en el cuadro script, y sustitúyalo por el código siguiente.
  6. Guárdalo con un nombre descriptivo. Automator lo guardará en la carpeta ~/Library/Services/ carpeta.
  7. Opcional: Vaya a las Preferencias del Teclado, y busque su servicio en la sección Servicios sección del Atajos de teclado ficha. Allí puede asignar un acceso directo a todo el sistema.

scriptCódigo

import sys

for f in sys.stdin:
    print f.replace('-', ' ').replace('%', ' ').replace('&', ' and ').replace('#', ' ').title(),

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X