我对python完全陌生。所以这是我的问题。
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)
输入要行走的文件夹时,它将提供完整列表。但是,如果我将其修改如下:
import os, sys
def visitdir(path):
result = []
for root,dirs,files in os.walk(path):
for filepath in files:
result = ''.join(os.path.join(root,filepath))
return result
if __name__ == '__main__':
path = raw_input("Please input the folder you want to walk:")
final = visitdir(path)
print final
它只会给出所选路径中的一项。如果我只想获得与上一个相同的结果,该如何调用该函数?
提前致谢。
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句