Как я могу заставить команду ghostsctip в Python работать?

Я новичок в Python, и у меня есть некоторые проблемы, касающиеся команды ghostcript. Я сохранил некоторые PDF-файлы в папке, и я уже создал.TXT-файлы для каждого PDF-файла с помощью команды pdftotext. Мне нужно проверить размер файла, и если он ниже порога, я должен удалить текст и запустить команду ghostscript, чтобы преобразовать PDF в файл.tif. Я использую Python 3.4 и код ниже:

for file in os.listdir(path):
      if file.endswith('.txt'):
          num = file.split("_")[0]
          name = file.split("_")[1]
          year = file.split("_")[2].replace('.txt', '')
          size = os.stat(os.path.join(path,file)).st_size

          if size < 2000:
              os.remove(os.path.join(path, file))
              pdf = num +"_"+name+"_"+year
              print(pdf)
              subprocess.check_call(["gs","-q","-dNOPAUSE","-sDEVICE=tiffg4","-r200",
                                  "-dINTERPOLATE","-sPAPERSIZE=a4",
                                  "-sOutputFile="+os.path.join(path, pdf)+"-%00d.tiff",
                                  ""+os.path.join(path, pdf)+""], shell=True)

PDF-файлы хранятся так 12_C_2014. Приведенный выше код не выдает никаких ошибок. Дело в том, что команда print(pdf) говорит, что нужно удалить 3 файла, но подпроцесс работает только для первого pdf. два других файла остаются нетронутыми. Какие изменения мне нужно сделать, чтобы подпроцесс работал для каждого файла? Кто-нибудь может помочь?

1 ответ

Решение

Я нашел решение, и у меня была небольшая помощь от @jF Себастьяна! Я не передал параметр -dBATCH, который заканчивается после конца последнего файла PDF, а подпроцесс работал только для первого файла PDF. Так что мой код должен быть таким (в строке, где я вызываю подпроцесс):

subprocess.check_call(["gs",
                       "-q",
                       "-dNOPAUSE",
                       "-dBATCH",
                       "-sDEVICE=tiffg4",
                       "-r200",
                       "-dINTERPOLATE","-sPAPERSIZE=a4",
                       "-sOutputFile="+os.path.join(path, pdf)+"-%00d.tiff",
                       ""+os.path.join(path, pdf)+""], shell=False)
Другие вопросы по тегам