2010-09-29 5 views
1

Comment ce fragment de code ...Affectation soulève exception pour list.index

def subInPath(origPath, subPath): 
    origSplit = split(origPath, '/') 
    subSplit = split(subPath, '/') 

    subRoot = subSplit[0] 
    origSplit.reverse() 
    print origSplit.index(subRoot) 
    rootIndex = origSplit.index(subRoot) 

    origSplit[:rootIndex+1] = [] 
    origSplit.reverse() 

    newPath = join(origSplit, sep) 
    newPath += (sep + subPath) 

    if not exists(newPath): 
     raise Exception, "Path subbed in not found." 
    return newPath 

avec les arguments ("C:/Users/MyName/Desktop/second_stage/Kickle_Pack/GardenLand_D.xml", "Kickle_Pack/Animations/TileAnims_48x48.xml") ...

sortie 2 à l'instruction d'impression, mais jeter un ValueError à la déclaration dessous. Je suis déconcerté.

+0

est-ce que l'erreur indique spécifiquement «x not in list»? – aaronasterling

+0

aussi, où obtenez-vous la fonction «split»? Ai-je raison de supposer qu'il renvoie une liste? – aaronasterling

+0

Je n'obtiens pas les mêmes résultats que vous. Pouvez-vous s'il vous plaît remplir votre code avec les instructions d'importation nécessaires et l'appel exact à subInPath() afin qu'il soit possible d'exécuter le code de la même manière que vous? – Arlaharen

Répondre

1

Utilisez toujours le module os.path lorsque vous travaillez avec des répertoires ou des chemins. Il a toutes les méthodes nécessaires pour travailler avec des répertoires, et il a l'avantage d'être compatible avec plusieurs systèmes d'exploitation.

C'est juste une meilleure ingénierie logicielle.

+0

Je n'ai pas pu trouver ce que j'essayais d'accomplir par l'intermédiaire de cela. – random

+0

Correction d'un problème avec le fichier os.sep en bas. – random

+0

@random si vous travaillez avec des chemins et des structures de répertoires, alors os.path est le module pour vous. S'il vous plaît lire la documentation, vous obtiendrez ce dont vous avez besoin. –

Questions connexes