Frage

Ich werde zunächst sagen, dass ich bin sehr, sehr neu in Python.

habe ich eine Windows / DOS Batch-Datei haben, um Mencoder mit den richtigen Satz von Parametern zu starten, ohne dass sich jedes Mal eingeben.

Die Dinge wurden chaotisch, als ich versuchte mein Skript zu verbessern, und ich beschlossen, dass es eine gute Gelegenheit, etwas in Python zu versuchen Codierung wäre.

Ich habe mit, dass kommen:

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

Aber das funktioniert nicht, Fenster beklagen, dass "C: \ Program". Ist Befehl nicht erkannt

Ich habe versucht, etwas „\““hier und da setzen, aber das hat nicht geholfen.

War es hilfreich?

Lösung

Python hat zwei Arten von Kursen, "und". Und sie sind völlig gleich, so einfachste Weg Anführungszeichen in einer Zeichenfolge zu erhalten ist, zu sagen: ‚‚C: \ Program Files \ MPlayer-1.0rc2 \ mencoder.exe‘‘.

Mit dem rohen Präfix (dh r ‚‚C: \ Program Files \ MPlayer-1.0rc2 \ mencoder.exe‘‘) ist eine gute Idee, aber das ist nicht der Fehler hier, da keines der Schrägstriche durch befolgt werden ein Brief, ein Escape-Code ist. So Ihre ursprüngliche Zeichenfolge würde nicht ändern, indem sie eine r vor ihm hat.

Andere Tipps

verwenden zwei Anführungszeichen statt einem, wenn Sie auf Windows tun.

"\\"

Ich bin neu in Python, aber ich weiß, wann immer ich dieses Problem zu sehen, um es zu beheben, die Datei (ausführbare Datei oder Argument) muss in Anführungszeichen gesetzt werden. Fügen Sie einfach \ " vor und nach jeder Datei, die ein Leerzeichen enthält darin zwischen den Befehlszeilenargumenten zu unterscheiden. So, das auch auf Ihre outfile Variable gilt. Der Code sollte wie folgt aussehen .. .

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

Sie können sogar die mencoder.exe in ein Verzeichnis kopieren, das keinen Raum char hat im Innern seines Namen (im Gegensatz zu Program Files).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top