为什么会出现错误?

时间:2012-06-06 08:54:17

标签: python

简单来源

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()

没有问题但发生错误。 为什么会出现错误?

2 个答案:

答案 0 :(得分:8)

import os
os.path.normpath(pages)

规范化你的路径并返回:

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

你不必重新发明轮子。

答案 1 :(得分:1)

您将收到错误,因为您的索引最终会超出范围。

从索引1迭代到字符串结尾:

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

然后再继续索引:

self.pages[j+1]

self.pages[j+2]