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做一个简单的博客,并且因为我的服务器有一个非常旧的Python版本我不能使用像glob这样的模块,所有事情都需要尽可能基本。
files数组包含目录中的所有文件,这对我来说已经足够了。我不需要浏览articles目录中的其他目录。
但是,当我尝试输出解析,即使在重复的文件我得到不同的结果。
感谢,
- 汤姆
您发布的代码不会调用iterate()函数,也不会打印任何内容。请发布完整的代码。 – 2009-08-13 15:35:14
此外,缩进看起来是错误的,这在Python中显然非常重要。请尝试修复它,使其看起来与您在文本编辑器中的效果完全相同。 – 2009-08-13 15:36:27