我对python完全陌生。所以这是我的问题。
Wordset.find({ 'person': person._id })
在输入我想要走的文件夹时,它会给出完整列表。 但如果我修改如下:
def visitdir(path):
result = []
for root,dirs,files in os.walk(path):
for filepath in files:
result = ''.join(os.path.join(root,filepath))
print result
if __name__ == '__main__':
path = raw_input("Please input the folder you want to walk:")
visitdir(path)
它只会从所选路径中提供一个项目。如果我只想获得与前一个相同的结果,我该如何调用该函数?
提前致谢。
答案 0 :(得分:0)
当你致电return
时,你完成了功能流并返回了值。
另外,为什么要创建列表'结果'然后用字符串覆盖它?
我认为你的意思是这样的:
def visitdir(path):
result = []
for root,dirs,files in os.walk(path):
for filepath in files:
filename = ''.join(os.path.join(root,filepath))
result.append(filename)
return result
例如,用结果填写列表并最终返回。
您可以做的另一件事是使用yield。
答案 1 :(得分:0)
return
终止给定函数的执行。
最简单的方法之一是yield
值,并从函数中生成生成器。
def visitdir(path):
for root,dirs,files in os.walk(path):
for filepath in files:
result = ''.join(os.path.join(root,filepath))
yield result
if __name__ == '__main__':
path = raw_input("Please input the folder you want to walk:")
print list(visitdir(path))
# or
for p in visitdir(path):
print p
另一种选择是将所有中间结果存储在列表中并返回所述列表。
def visitdir(path):
results = []
for root,dirs,files in os.walk(path):
for filepath in files:
result = ''.join(os.path.join(root,filepath))
results.append(result)
return results
if __name__ == '__main__':
path = raw_input("Please input the folder you want to walk:")
print visitdir(path)
# or
for p in visitdir(path):
print p
答案 2 :(得分:0)
您应该将结果附加到您创建的结果列表中。
#maincontent > div{display:none;}