¿Cómo uso AppleScript en Python?


2

Hice un programa para generar contratos a granel basado en datos de un archivo .xlsx. Originalmente lo hice para PC, y ahora estoy tratando de crear una versión para Mac. Todo parece funcionar sin problemas, pero hay un método en mi programa que se basa en win32com.client, por lo que necesito encontrar algo más para esto. Me pregunto si hay un paquete análogo para Mac, o una forma de realizar las mismas tareas básicas sin demasiado dolor de cabeza. Estoy abierto a aprender un poco de AppleScript; Simplemente no estoy muy seguro de cómo emplear AppleScript en Python, o dónde comenzar a buscar.

Aquí está el método con el que estoy trabajando:

def PDFconverter(self, filePath, contract):
    folder = filePath
    file_type = 'docx'
    out_folder = folder + "\\" + getIssueCode(self.GUI)
    if not os.path.exists(out_folder):
        print('Creating output folder for PDFs...')
        os.makedirs(out_folder)
        print(filePath, 'created.')
    for files in os.listdir("."):
        if files == contract:
            out_name = files.replace(file_type, r"pdf")
            in_file = os.path.abspath(folder + "\\" + files)
            out_file = os.path.abspath(out_folder + "\\" + out_name)
            word1 = client.Dispatch("Word.Application")
            doc1 = word1.Documents.Open(in_file)
            print('Exporting', out_file)
            print(' ')
            doc1.SaveAs(out_file, FileFormat=17)
            doc1.Close()
            word1.Quit()

El bucle for en la parte inferior verifica si cada archivo de palabras en la carpeta coincide con el nombre del contrato especificado, y luego llama a client.Dispatch para abrir el archivo relevante y lo guarda como un PDF.

¿Alguien puede señalarme en la dirección de una manera de lograr esto en macOS?


Oye, ¿estás buscando salir al shell y llamar osascriptdesde Python? No está claro qué superficialmente estamos buscando para ayudarlo aquí o si solo quiere que alguien diga: sí, ¿puede usar Python en la Mac ya que eso se envía y solo necesita cambiar alguna sintaxis o llamadas?
bmike
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.