Python: No abrir un archivo usando os.system ()

Estoy codificando un script de Python que usa la aplicación pdftk varias veces para realizar algunas operaciones.

Por ejemplo, puedo usar pdftk en la línea de comandos de Windows para fusionar dos archivos pdf como este:

pdftk 1.pdf 2.pdf cat output result.pdf 

Me gustaría realizar la operación anterior en el medio de mi script de Python. Así es como lo intenté:

 os.system('pdftk 1.pdf 2.pdf cat output result.pdf') 

El comando pdftk anterior funciona perfectamente en el shell de Windows. Sin embargo, no puede abrir los archivos de entrada (1.pdf y 2.pdf) cuando bash ejecutarlo utilizando el sistema os.system() de Python os.system() . Aquí está el mensaje de error que recibo de pdftk al intentar ejecutar el comando usando el sistema os.system() de Python os.system() :

Error: No se pudo abrir el archivo PDF: 1.pdf

Error: Error al abrir el archivo PDF: 2.pdf

¿Por que sucede? ¿Cómo puedo arreglarlo?

Tenga en cuenta: Sé que hay mejores maneras de combinar archivos PDF con Python. Mi pregunta no es sobre la fusión de archivos pdf. Eso fue solo un ejemplo de juguete. Lo que estoy tratando de lograr es la capacidad de ejecutar pdftk y otras aplicaciones de línea de comandos utilizando Python.

Puede evitar (potenciales) problemas con la cotización, el escape, etc., con el subprocess :

 import subprocess subprocess.call(['pdftk', '1.pdf', '2.pdf', 'cat', 'output', 'result.pdf']) 

Es tan fácil de usar como os.system , e incluso más fácil si está creando la lista de argumentos dinámicamente.

Es necesario establecer el directorio de trabajo actual del proceso. Si los archivos .pdf se encuentran en /some/path/to/pdf/files/ :

 >>> os.getcwd() '/home/vz0' >>> os.chdir('/some/path/to/pdf/files/')