【问题标题】:Python looping to read and parse all in a directoryPython循环读取和解析目录中的所有内容
【发布时间】:2009-08-13 14:43:53
【问题描述】:
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)

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

我正在尝试使用 Python 制作一个简单的博客,因为我的服务器有一个非常旧的 Python 版本,所以我不能使用像 glob 这样的模块,一切都需要尽可能基本。

files 数组包含目录中的所有文件,这对我来说已经足够好了。我不需要遍历文章目录中的其他目录。

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

谢谢,

  • 汤姆

【问题讨论】:

  • 您发布的代码没有调用 iterate() 函数,也没有打印出任何内容。请发布完整的代码。
  • 另外,缩进看起来不对,这在 Python 中显然非常重要。请尝试修复它,使其看起来与您的文本编辑器中的完全一样。

标签: python xml file-io blogs


【解决方案1】:

可能是因为:

del Files[5:]

它也会从原始列表中删除最后 5 个条目。不用del,你可以试试:

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

【讨论】:

  • 没用,但是删除两行并保留原始数组的好方法。谢谢
【解决方案2】:

如 cmets 中所述,缺少实际的递归。
即使它在代码的其他地方,递归调用也是错误的典型地方,因此我建议你仔细检查一下。

但是,为什么不使用os.walk?它遍历所有路径,而无需重新发明(递归)轮子。不过2.3已经引入了,不知道你的python几岁了。

【讨论】:

  • 我的数组不是问题,而是其他问题。如果我打印数组,它会显示所有文件。
  • 你能检查一下数组的长度吗?我问是因为你可能有一个由 1-2 个字符串元素组成的数组,所有文件名都用空格分隔。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 2013-11-27
  • 1970-01-01
  • 2017-11-26
相关资源
最近更新 更多