Pregunta

Voy a empezar diciendo que yo soy muy, muy nuevo en Python.

Yo solía tener un archivo por lotes de Windows / Dos con el fin de poner en marcha Mencoder con el conjunto adecuado de parámetros, sin tener que escribirlos cada vez.

Las cosas se pusieron desordenado cuando traté de mejorar mi escritura, y yo decidimos que sería una buena oportunidad de probar algo en la codificación de pitón.

Yo he llegado con lo siguiente:

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "C:\Program Files\MPlayer-1.0rc2\mencoder.exe"
infile = "holidays.avi"
outfile = "holidays (part1).avi"
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input() 

Pero eso no funciona, Windows dice que "C: \ Program". No se reconoce comandos

He intentando poner un poco de "\"" aquí y allá, pero eso no ayuda.

¿Fue útil?

Solución

Python tiene dos tipos de cotizaciones, "y '. Y son completamente igual manera lo tanto más fácil de obtener las cotizaciones de una cadena es decir ' 'C: \ Archivos de programa \ MPlayer-1.0rc2 \ mencoder.exe''.

Al utilizar el prefijo en bruto (es decir, R ' 'C: \ Archivos de programa \ MPlayer-1.0rc2 \ mencoder.exe'') es una buena idea, pero que no es el error aquí, ya que ninguna de las barras invertidas son seguidos por una carta que es un código de escape. Por lo que su cadena original no cambiaría en absoluto por tener un r delante de él.

Otros consejos

utilizar dos citas en lugar de uno si se está haciendo en las ventanas.

"\\"

Soy nuevo en Python, pero sé cuando cada vez que veo ese problema, para solucionarlo, el archivo (ejecutable o argumento) debe estar entre comillas. Sólo tiene que añadir \ " antes y después de cualquier archivo que contiene un espacio en ella para diferenciar entre los argumentos de línea de comandos. Por lo tanto, que se aplica a la variable de archivo de salida también. El código debería tener este aspecto .. .

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "\"C:\Program Files\MPlayer-1.0rc2\mencoder.exe\""
infile = "holidays.avi"
outfile = "\"holidays (part1).avi\""
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input()

Usted puede incluso poner el mencoder.exe en un directorio que no tiene un char espacio en el interior de su nombre (en oposición a Archivos de programa).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top