Quelle est la meilleure façon sur Windows pour que python 2.3 puisse exécuter un programme tel que ghostscript avec plusieurs arguments et espaces dans les chemins d’access?

Il y a sûrement une sorte d’abstraction qui permet cela?

C’est essentiellement la commande

cmd = self._ghostscriptPath + 'gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -r196X204 -sPAPERSIZE=a4 -sOutputFile="' + tifDest + " " + pdfSource + '"' os.popen(cmd) 

cette façon semble vraiment sale pour moi, il doit y avoir une façon pythonique

Utilisez sous – processus , il remplace os.popen, même si ce n’est pas beaucoup plus une abstraction:

 from subprocess import Popen, PIPE output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] #this is how I'd mangle the arguments together output = Popen([ self._ghostscriptPath, 'gswin32c', '-q', '-dNOPAUSE', '-dBATCH', '-sDEVICE=tiffg4', '-r196X204', '-sPAPERSIZE=a4', '-sOutputFile="%s %s"' % (tifDest, pdfSource), ], stdout=PIPE).communicate()[0] 

Si vous ne disposez que de python 2.3 sans module de sous-processus, vous pouvez toujours utiliser os.popen

 os.popen(' '.join([ self._ghostscriptPath, 'gswin32c', '-q', '-dNOPAUSE', '-dBATCH', '-sDEVICE=tiffg4', '-r196X204', '-sPAPERSIZE=a4', '-sOutputFile="%s %s"' % (tifDest, pdfSource), ]))