Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur de traitement

    10 novembre 2022 à 11:57:27

    Bonjour,

    J'essaie d'exécuter un script pour convertir mes pdf par lot, mais j'obtiens cette erreur de chemin ?

    Je vous remercie de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      10 novembre 2022 à 12:12:43

      Bonjour,

      Il faudrait voir ton code

      Affiche-le ici ...

      • Partager sur Facebook
      • Partager sur Twitter
        10 novembre 2022 à 12:38:52

        l'erreur indique une erreur de fichier introuvable sur la ligne 17 de ton script (code affiché sur la 2nde ligne après traceback sur ta capture)

        A vérifier tes variables arg1 et filename. 

        Je peux me tromper mais je suspecte un ennui avec le nom de ton fichier qui comporte des espaces, donc il faut l'encadrer par des guillemets pour que le nom soit totalement pris, au lieu que seulement le 1er mot (AR-Orne) soit pris comme nom de fichier.

        • Partager sur Facebook
        • Partager sur Twitter
          10 novembre 2022 à 15:00:37

          J'ai essayé avec un nom de fichier court et sans espace et accent mais c'est pareil. J'ai une procédure judiciaire à envoyé par AR en ligne et je souhaite compresser mes pdf par lot alors j'espère que ça va marcher car il y en a beaucoup.

          Mon code :

          from __future__ import print_function
          import os
          import subprocess
          
          root = "."
          
          try:
             os.mkdir('compressed')
          except FileExistsError:
             pass   
             
          for file in os.listdir(root):
                if file.endswith(".pdf"):
                   filename = os.path.join(root, file)
                   arg1= '-sOutputFile=' + './compressed/' + file
                   print ("compressing:", file )
                   p = subprocess.Popen(['gs', '-sDEVICE=pdfwrite', '-dCompatibilityLevel=1.4', '-dPDFSETTINGS=/screen', '-dNOPAUSE', '-dBATCH',  '-dQUIET', str(arg1), filename], stdout=subprocess.PIPE).wait()



          • Partager sur Facebook
          • Partager sur Twitter
            10 novembre 2022 à 16:07:25

            force l'ajout des guillemets ou utilise aussi os.path.join pour ton arg1 

            filename ='"'+os.path.join(root,file) +'"'
            arg1='-sOutputFile="'+os.path.join(root,'compressed',file)+'"'

            éventuellement, je regarderais que la commande donnerait

            cmd = ['gs', '-sDEVICE=pdfwrite', '-dCompatibilityLevel=1.4', '-dPDFSETTINGS=/screen', '-dNOPAUSE', '-dBATCH',  '-dQUIET', str(arg1), filename]
            print(" ".join(cmd))

            et je la testerais aussi directement dans une invite de commande pour voir si elle fonctionne

            PS: Attention aussi p va contenir le résultat de wait() pas le process issu de Popen

            -
            Edité par umfred 10 novembre 2022 à 16:16:15

            • Partager sur Facebook
            • Partager sur Twitter
              11 novembre 2022 à 11:42:50

              Bonjour,

              Cela me donne toujours la même erreur.

              • Partager sur Facebook
              • Partager sur Twitter
                14 novembre 2022 à 14:19:18

                qu'est-ce qui donne la même erreur ? Si tu rentres la commande directement dans powershell ça donne quoi ? 
                gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile="chemin_du_fichier_de_sortie.pdf" "chemin_du_fichier_source.pdf"
                • Partager sur Facebook
                • Partager sur Twitter

                Erreur de traitement

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown