2010-06-12 7 views
1

J'ai juste pris IronPython et j'ai essayé d'obtenir ce script IronPython, mais je suis bloqué à essayer d'obtenir une entrée Path de raw_input pour être un chemin de répertoire. Le premier bloc de code est celui cassé sur lequel je travaille.Comment convertir raw_input() en répertoire?

import System 
from System import * 
from System.IO import * 
from System.Diagnostics import * 

inputDirectory = raw_input("Enter Input Directory's full path [eg. c:\\vid\\]: ") 
print ("In: "+inputDirectory) 
outputDirectory = inputDirectory +"ipod\\" 
print ("Out: "+outputDirectory) 
#create the default output directory 

for s in DirectoryInfo(inputDirectory).GetFiles("*.avi"): 
print s.FullName 
    arg = String.Format('-i "{0}" -t 1 -c 1 -o "{1}" --preset="iPod"' , s.FullName, outputDirectory + s.Name.Replace(".avi", ".mp4")) 
    print arg 
    proc = Process.Start("C:\\Program Files\\Handbrake\\HandBrakeCLI.exe", arg) #path to handbrake goes here 
    proc.WaitForExit() 

Le bloc de code suivant est ce que j'ai pour le moment.

import System 
from System import * 
from System.IO import * 
from System.Diagnostics import * 

for s in DirectoryInfo("F:\\Tomorrow\\").GetFiles("*.avi"): 
    arg = String.Format('-i "{0}" -t 1 -c 1 -o "{1}" --preset="iPod"' , s.FullName, "F:\\Tomorrow\\ipod\\" + s.Name.Replace(".avi", ".mp4")) 
    print arg 
    proc = Process.Start("C:\\Program Files\\Handbrake\\HandBrakeCLI.exe", arg) #path to handbrake goes here 
    proc.WaitForExit() 

PS: Crédit pour le code de travail ci-dessus va à Joseph à jcooney.net

Répondre

2

Vous cherchez juste pour "Directory.CreateDirectory (outputDirectory)" où vous avez votre commentaire? Si j'ajoute que et exécuter ce (moins le frai du processus) Je reçois:

Enter Input Directory's full path [eg. c:\vid\]: C:\Users\Dino\ 
In: C:\Users\Dino\ 
Out: C:\Users\Dino\ipod\ 
C:\Users\Dino\x.avi 
-i "C:\Users\Dino\x.avi" -t 1 -c 1 -o "C:\Users\Dino\ipod\x.mp4" --preset="iPod" 

Mais je pense que vous voulez vraiment soit regarder la classe de chemin qui a Path.Combine que vous pouvez utiliser au lieu de simplement concaténer la cordes.

+0

Merci de votre réponse! Je me suis rendu compte que j'avais un nom imprimé inexploité sur mon script cassé ce matin. Je pensais que c'était en train de planter sur Directory.CreateDirectory (outputDirectory) c'est pourquoi je l'ai supprimé et l'ai remplacé par un commentaire (j'ai cependant tort de devoir convertir la chaîne en un type pouvant être utilisé avec la classe Directory). – Azeworai