Domanda

Comincerò dicendo che sono molto, molto nuovo a Python.

Ho usato per avere un file batch di Windows / Dos, al fine di lanciare Mencoder con il giusto set di parametri, senza dover digitare ogni volta.

Le cose sono disordinato quando ho cercato di migliorare la mia sceneggiatura, e ho deciso che sarebbe stata una buona occasione per provare qualcosa di codifica in Python.

Sono venuta in mente che:

#!/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() 

Ma questo non funziona, le finestre si lamenta che "C: \ Programmi". Non viene riconosciuto il comando

Ho cercando di mettere un po 'di "\"" qui e là, ma che non ha aiutato.

È stato utile?

Soluzione

Python hanno due tipi di citazioni, "e '. E sono completamente uguali modo in modo più semplice per ottenere le quotazioni in una stringa è dire ' 'C: \ Program Files \ MPlayer-1.0rc2 \ mencoder.exe''.

Utilizzando il prefisso prima (cioè r ' 'C: \ Program Files \ MPlayer-1.0rc2 \ mencoder.exe'') è una buona idea, ma che non è l'errore qui, in quanto nessuno dei backslash sono seguiti da una lettera che è un codice di escape. Così la stringa originale non cambierebbe affatto avendo un r di fronte ad essa.

Altri suggerimenti

utilizzare due citazioni invece di uno se si sta facendo su Windows.

"\\"

Sono nuovo di Python, ma so quando mai vedo che problema, per risolvere il problema, il file (eseguibile o argomento) deve essere tra virgolette. Basta aggiungere \ " prima e dopo ogni file che contiene uno spazio in esso per distinguere tra gli argomenti della riga di comando. Quindi, che si applica alla variabile outfile pure. Il codice dovrebbe essere simile .. .

#!/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()

Si può anche mettere il mencoder.exe in una directory che non ha un carattere spazio all'interno il suo nome (al contrario di Program Files).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top