Автоматизировать задачу для преобразования файла SPSS (.spv) в PDF в Python - PullRequest
1 голос
/ 01 апреля 2019

Я ищу способ быстро конвертировать папку, содержащую несколько выходных файлов SPSS (.spv), в PDF-файлы.В идеале я хотел бы сделать это с Python, но если есть более простое решение, я весь слух.

Мне просто нужен файл .spv, чтобы открыть в python, затем нажмите Файл -> Экспорт -> PDF.

Я никогда раньше не пробовал себя в автоматизации задач на каком-либо языке, поэтому я не знаю, как это начать.

1 Ответ

0 голосов
/ 08 апреля 2019

Просто для тех, у кого похожий вопрос: мне не удалось создать элегантный конвертер или что-то еще, но я нашел простое решение, просто открыв каждый файл и щелкнув Файл -> Экспорт -> PDF для меня. Я сделал это, используя PyAutoGUI

Вот мой код для всех, кто заинтересован.

from glob import glob
import pyautogui 
import subprocess
import os
import time
import signal

all_files = glob("C://Users//directory//*//*")

screen = pyautogui.size()

#Confirm that your screen is 1920 X 1080
#If not, you'll need to change some of these dimensions
if screen == (1920,1080): 
    for file in all_files:
        if file.endswith('.spv'):

            #Have SPSS already open for this to work
            p = subprocess.Popen(file, shell=True) #open file

            #left to right 0 to 1920
            #up to down 0 to 1080
            pyautogui.moveTo(22, 50, duration=2) #File
            pyautogui.click()
            pyautogui.moveTo(22, 230) #Export
            pyautogui.click()
            pyautogui.moveTo(650, 250) #Choose 'All Visible' option
            pyautogui.doubleClick()
            pyautogui.doubleClick(800, 820) #Ok

            try: 
                time.sleep(5) #Let SPSS Export, this takes time

                #Rename the 'Output.pdf' file
                #The "output_directory" is just where SPSS is saving your files
                current_directory = os.path.dirname(os.path.realpath(file))
                os.chdir("C://Users//output_directory")

                for filename in os.listdir("C://Users//output_directory"):
                    if filename.startswith("OUTPUT.pdf"):
                        base = os.path.basename(os.path.normpath(file))
                        renamed, file_extension = os.path.splitext(base)
                        renamed = renamed + '.pdf'
                        os.rename(filename, renamed)

            #Close SPSS file
            pyautogui.click(2875, 5) #File
...