2012-06-06 409 views
-5

簡單源爲什麼會出現錯誤?

class page: 
    pages = "/.././ewcwe/../qds/./qwd/qwf/qwd/../../../sad/qwd/../sad/qwd/sad/.././../../../../bbs/./board.php?bo_table=humor&wr_id=195?los=09&qwe=2&" 

    def __init__(self): 
     self.normalize() 

    def normalize(self): 
     for j in range(1, len(self.pages)): 
      if self.pages[j-1] != "." and self.pages[j] == "." and self.pages[j+1] == "/": 
       self.pages = self.pages[:j] + self.pages[j+2:] 
       print self.pages 

     print self.pages 

index = page() 

有沒有問題,但是會出現誤差。 爲什麼會出現錯誤?

+6

也許你應該告訴我們錯誤是什麼? – Alex

+0

...並獲得正確的格式。 –

+0

是的,因爲我們不知道在這裏或代碼中發佈的格式是否有誤(以及錯誤)。 –

回答

8
import os 
os.path.normpath(pages) 

標準化您的路徑返回:

'/bbs/board.php?bo_table=humor&wr_id=195?los=09&qwe=2&' 

您不必推倒重來。

1

您將收到錯誤消息,因爲您的索引最終將超出範圍。

您從指數1迭代直到字符串的結尾:

for j in range(1, len(self.pages)): 

但之後再去指數超出了:

self.pages[j+1] 

self.pages[j+2]