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

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

4

2 回答 2

8
import os
os.path.normpath(pages)

标准化您的路径并返回:

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

您不必重新发明轮子。

于 2012-06-06T08:57:24.220 回答
1

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

您从索引 1 迭代到字符串的末尾:

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

但然后继续索引除此之外:

self.pages[j+1]

self.pages[j+2]
于 2012-06-06T09:01:40.587 回答