2016-07-03 7 views
0

Я новичок в python. Я изучаю os.walk и урожай. Если я попытаюсь сделать print(fname) ниже, он печатает объект генератора. Как распечатать фактическое имя файла.получение имени файла из объекта генератора python

import os, fnmatch 

def locate(pattern, root=os.curdir): 

    for path, dirs, files in os.walk(os.paths.abspath(root)): 
     for filename in fnmatch.filter(files,pattern): 
      yield os.path.join(path,filename) 


if __name__ == '__main__': 
    fname = locate('assert.py') 
    print(fname) 

ответ

1
if __name__ == '__main__': 
    for fname in locate('assert.py') 
     print(fname) 

генераторы не обрабатываются до тех пор, пока это необходимо (или итерация)

print next(locate("assert.py"),"assert.py not found!") 

способ просто получить первый матч

Смежные вопросы