2013-04-22 1 views
-6

저는 여전히 파이썬과 xml로 초보자입니다. 다음 오류는 나를 너무 괴롭 히고있다. 이 코드에서IndexError : 목록 색인 범위를 벗어난 오류

Traceback (most recent call last): 
    File "path", line 66, in <module> 
    print slidename[a].childNodes[0].nodeValue 
IndexError: list index out of range 

: 다음은 다음과 같은 코드를 실행하는 동안 내가 (오류) 도착 역 추적 엉망 사전에

for object in os.listdir(my_directory): 
     print (object) 
     if '.zip' in object: 
      #print (object) 
      new = os.path.splitext(object) 
      #print (new[0]) 
      file_name.append(new[0]) 
      os.mkdir(my_directory+new[0], 0o777) 
      with zipfile.ZipFile(my_directory+new[0]+new[1], "r") as z: 
       z.extractall(my_directory+new[0]) 

count = 0 

for len_num in range(0,len(file_name)): 

    for doc in os.listdir(my_directory+file_name[len_num]+new_directory): 
      if '.xml' in doc: 
        #print doc 
        slide_name = os.path.splitext(doc) 
        #print slide_name 
        print ((file_name)[len_num])+'>>>'+((slide_name)[0]) 
        file= xml.dom.minidom.parse(my_directory+((file_name)[len_num])+new_directory+doc) 
        tagname = file.getElementsByTagName('a:t') 
        #print tagname 

        for a in range(0,len(tagname)): 
         print tagname[a].childNodes[0].nodeValue 

감사합니다!

+0

죄송합니다, 우리는 스택 오버플로 여기에 '긴급'하지 않는다 : 당신이 직접 목록 자체에 루프가 있습니다 인덱스를 반복 할 필요가 없습니다. 해당 예외에 대한 전체 * 추적을 포함 할 수 있습니까? –

+0

어디에서 오류가 발생합니까? –

+0

제 생각에'tagname [a] .childNodes [0]'은 예외를 던졌습니다. 그러나 이것은 오류를 재현하기위한 정보가 너무 적기 때문에 추측에 불과합니다. –

답변

3

해당 slidename[a] 요소에 대해 자식 노드가없는 XML을 구문 분석하고 있습니다. 아마 그걸 건너 뛰고 싶을거야.

잠재력을 최대한 활용하기 위해 Python 루프를 사용하고 있지 않습니다.

for a in tagname: 
    try: 
     print a.childNodes[0].nodeValue 
    except IndexError: 
     print 'No childNodes for this element' 
+0

정말 고마워요! – Sangamesh