Python循环读取和解析目录中的所有内容 class\uuuuu init\uuuuuuu: path=“articles/” files=os.listdir(路径) files.reverse() def迭代(文件、路径): def handleXml(内容): 月份=['','一月'、'二月'、'三月'、'四月'、'五月'、'六月'、'七月'、'八月'、'九月'、'十月'、'十一月'、'十二月'] parse=re.compile('(.*)).findall(内容) day=解析[1][1] 月=月[int(解析[2][1])] dayN=parse[3][1] 年份=解析[4][1] 小时=解析[5][1] min=解析[6][1] amPM=parse[7][1] title=解析[9][1] 作者=解析[10][1] article=解析[11][1] 类别=解析[12][1] 如果len(文件)>5: del文件[5:] 对于文件中的文件: file=“%s%s”%(路径,文件) f=打开(文件“r”) handleXml(f.read()) f、 关闭() 迭代(文件、路径)
它在开始时运行,如果我检查文件数组,它将包含所有文件名。 但是当我在它们之间循环时,它们不起作用,只显示第一个。 如果我返回file,我只得到前两个,如果我返回parse,即使是在重复的文件上,它也不相同。 所有这些都毫无意义 我正在尝试使用Python创建一个简单的博客,因为我的服务器有一个非常旧的Python版本,所以我不能使用像glob这样的模块,所有内容都需要尽可能的基本 文件数组包含目录中的所有文件,这对我来说已经足够好了。我不需要浏览文章目录中的其他目录 但当我尝试输出解析时,即使是在重复的文件上,我也会得到不同的结果 谢谢Python循环读取和解析目录中的所有内容 class\uuuuu init\uuuuuuu: path=“articles/” files=os.listdir(路径) files.reverse() def迭代(文件、路径): def handleXml(内容): 月份=['','一月'、'二月'、'三月'、'四月'、'五月'、'六月'、'七月'、'八月'、'九月'、'十月'、'十一月'、'十二月'] parse=re.compile('(.*)).findall(内容) day=解析[1][1] 月=月[int(解析[2][1])] dayN=parse[3][1] 年份=解析[4][1] 小时=解析[5][1] min=解析[6][1] amPM=parse[7][1] title=解析[9][1] 作者=解析[10][1] article=解析[11][1] 类别=解析[12][1] 如果len(文件)>5: del文件[5:] 对于文件中的文件: file=“%s%s”%(路径,文件) f=打开(文件“r”) handleXml(f.read()) f、 关闭() 迭代(文件、路径),python,xml,file-io,blogs,Python,Xml,File Io,Blogs,它在开始时运行,如果我检查文件数组,它将包含所有文件名。 但是当我在它们之间循环时,它们不起作用,只显示第一个。 如果我返回file,我只得到前两个,如果我返回parse,即使是在重复的文件上,它也不相同。 所有这些都毫无意义 我正在尝试使用Python创建一个简单的博客,因为我的服务器有一个非常旧的Python版本,所以我不能使用像glob这样的模块,所有内容都需要尽可能的基本 文件数组包含目录中的所有文件,这对我来说已经足够好了。我不需要浏览文章目录中的其他目录 但当我尝试输出解析时,即使是
- 汤姆
- 可能是因为:
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)
它还将从原始列表中删除最后5个条目。您可以尝试以下操作,而不是使用del
:
del Files[5:]
可能是因为:
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)
它还将从原始列表中删除最后5个条目。您可以尝试以下操作,而不是使用del
:
del Files[5:]
如注释中所述,缺少实际的递归。
即使它在代码的其他地方,递归调用也是错误的典型地方,因此我建议您仔细检查它
但是,为什么不使用?它遍历所有路径,无需重新创建(递归)轮子。但是,它已经在2.3中引入,我不知道您的python有多老。如注释中所述,实际的递归缺失。
即使它在代码的其他地方,递归调用也是错误的典型地方,因此我建议您仔细检查它
但是,为什么不使用?它遍历所有路径,无需重新创建(递归)轮子。但是,它已经在2.3中引入,我不知道您的python有多老。您发布的代码没有调用iterate()函数,也没有打印任何内容。请发布完整的代码。此外,缩进看起来是错误的,这在Python中显然非常重要。请尝试修复它,使其与文本编辑器中的完全相同。您发布的代码不调用iterate()函数,也不打印任何内容。请发布完整的代码。此外,缩进看起来是错误的,这在Python中显然非常重要。请尝试修复它,使其与文本编辑器中的完全相同。不起作用,但这是删除两行并保留原始数组的好方法。ThanksDid不起作用,但这是删除两行并保留原始数组的好方法。Thanksmy数组不是问题所在,它是另外一回事。如果我打印数组,它会显示所有文件。你能检查数组的长度吗?我这样问是因为你可能有一个由1-2个字符串元素组成的数组,所有文件名都用空格分隔。我的数组不是问题所在,它是另外一个问题。如果我打印数组,它会显示所有文件。你能检查数组的长度吗?我这样问是因为可能有一个由1-2个字符串元素组成的数组,所有文件名都用空格分隔。