¿Crear un servicio de automatización con un script de Python?

2

Estoy intentando crear un Servicio de Automatización que actuará sobre el texto seleccionado, convirtiendo guiones en espacios y también haciendo mayúsculas para todo el texto.

Un amigo me dio esta secuencia de comandos de python (no sé nada acerca de las secuencias de comandos de python o shell):

#! /usr/bin/python

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

Funciona muy bien como un fragmento de TextExpander, pero también me gustaría tenerlo disponible en el menú Servicios. No lo necesito para usar ningún lenguaje de scripting específico, solo necesita ejecutarse dentro de Automator. Mi amigo de codificación no tenía experiencia con Automator, por lo que no podía ayudar. Su script requiere copiar el texto al portapapeles, y luego ejecuta el formateo y pega el resultado. Me gustaría poder simplemente ejecutar esto en el texto seleccionado y no tener que lidiar con el Portapapeles (al menos manualmente).

El uso particular para esto es cambiar el nombre de las fotos subidas en Flickr, ya que Flickr usa el nombre de archivo para generar el nombre de la foto. Al exportar ilustraciones a través de Photoshop o Illustrator utilizando Guardar para Web, la minúscula y los guiones son mis configuraciones predeterminadas. Quiero poder resaltar el título de Flickr y luego ejecutar el Servicio para reformatear el nombre del archivo a un título con el formato correcto.

    
pregunta George C 05.08.2012 - 17:48

1 respuesta

5

Esto no es demasiado difícil de hacer, solo necesitas saber la magia correcta. Te guiaré a través de él.

  1. Abra Automator, y cuando se le solicite que elija un tipo para su documento, seleccione Servicio . Si no se te solicita, solo presiona ⌘N para crear un nuevo archivo de automatización.
  2. En la parte superior del panel de la derecha, asegúrese de que La salida reemplace el texto seleccionado esté marcada y que el primer menú desplegable esté configurado como texto :
    • Puedes cambiar la parte de cualquier aplicación a una aplicación específica si solo quieres que funcione en ese programa.
  3. En la Biblioteca de acciones en el panel izquierdo, busque Ejecutar script de shell y haga doble clic para agregarlo al flujo de trabajo.
  4. Cambie el Shell desplegable a / usr / bin / python , y asegúrese de que Pass input esté establecido en stdin .
  5. Borre el texto existente en el cuadro de secuencia de comandos y reemplácelo con el código a continuación.
  6. Guárdalo con un nombre descriptivo. Automator lo guardará en la carpeta ~/Library/Services/ .
  7. Opcional: Vaya a Preferencias del teclado y busque su servicio en la sección Servicios de la pestaña Atajos de teclado . Puede asignar un acceso directo de todo el sistema allí.

Código de script

import sys

for f in sys.stdin:
    print f.replace('-', ' ').replace('%', ' ').replace('&', ' and ').replace('#', ' ').title(),
    
respondido por el robmathers 05.08.2012 - 18:53

Lea otras preguntas en las etiquetas