class __init__:
    path = "articles/"
    files = os.listdir(path)
    files.reverse()

    def iterate(Files, Path):

        def handleXml(content):

            months = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

            parse = re.compile('<(.*?)>(.*?)<(.*?)>').findall(content)
            day = parse[1][1]
            month = months[int(parse[2][1])]
            dayN = parse[3][1]
            year = parse[4][1]
            hour = parse[5][1]
            min = parse[6][1]
            amPM = parse[7][1]
            title = parse[9][1]
            author = parse[10][1]
            article = parse[11][1]
            category = parse[12][1]

        if len(Files) > 5:
            del Files[5:]

        for file in Files:
            file = "%s%s" % (Path, file)
            f = open(file, 'r')
            handleXml(f.read())
            f.close()

    iterate(files, path)


它在启动时运行,如果我检查文件数组,它将包含所有文件名。
但是,当我遍历它们时,它们只是不起作用,仅显示第一个。
如果我返回文件,我只会得到前两个文件,而且即使对重复的文件我也返回解析文件,它也不相同。
这些都没有任何意义。

我正在尝试使用Python创建一个简单的博客,并且由于我的服务器具有非常旧的Python版本,因此我无法使用glob之类的模块,因此所有内容都必须尽可能基本。

files数组包含目录中的所有文件,对我来说足够了。我不需要浏览Articles目录内的其他目录。

但是,当我尝试输出解析时,即使在重复的文件上,我也会得到不同的结果。

谢谢,


汤姆

最佳答案

可能是因为:

del Files[5:]


它也会从原始列表中删除最后5个条目。您可以尝试使用以下方法来代替使用del

for file in Files[:5]:
  #...

10-05 17:42
查看更多