我正在研究一个递归函数来编写树的子类别。我不想使用全局变量,在递归方法上写入文件的最佳方法是什么?
def recurse(i):
Xmlfile = file("index.html", "w")
if i < 5:
Xmlfile.write(str(i))
recurse(i+1)
return(None)
def main():
Xmlfile = file("index.html", "w")
Xmlfile.write("I")
recurse(3)
Xmlfile.write("O")
预期的输出应该是这样的:I 3 4 5 O,但我只得到 I O。
请您参考如下方法:
将其作为参数传递。您这样做的方式将在每次迭代时重新打开并截断文件。
def recurse(f, i):
if i < 5:
f.write(str(i))
recurse(f, i+1)
def main():
with open("index.html", "w") as xmlfile:
xmlfile.write("I")
recurse(xmlfile, 3)
xmlfile.write("O")
请注意,我已将 file() 替换为推荐的 open(),并添加了上下文管理器以确保文件被关闭。
