Com recórrer el sistema de fitxers a Python? Suposem que hem donat l'estructura de fitxers a continuació al nostre sistema i volem recórrer totes les seves branques completament de dalt a baix?
Com funciona os.walk() a Python?
OS.walk() genera els noms dels fitxers en un arbre de directoris caminant per l'arbre de dalt a baix o de baix a dalt. Per a cada directori de l'arbre arrelat a la part superior del directori (incloent-hi la part superior), produeix una tupla de 3 (dirpath, dirnames, noms de fitxer).
- arrel: Imprimeix directoris només des del que heu especificat.
- dir: Imprimeix subdirectoris des de l'arrel.
- Fitxers : Imprimeix tots els fitxers des de l'arrel i directoris.
# Driver function import os if __name__ == "__main__": for (root,dirs,files) in os.walk('.', topdown=True): print (root) print (dirs) print (files) print ('--------------------------------')>
Sortida:
['gfg-article-deep-crawl-master (1)', '.ipynb_checkpoints'] ['t.pdf', 'Untitled.ipynb'] -------------------------------- ./gfg-article-deep-crawl-master (1) ['gfg-article-deep-crawl-master'] [] -------------------------------- ./gfg-article-deep-crawl-master (1)/gfg-article-deep-crawl-master ['check_rank'] ['rank_scraper.py', 'search-page (copy).html', '.gitignore', 'search-page.html', 'globals.py', 'requirements.txt', 'sel_scraper.py', 'README.md'] -------------------------------- ./gfg-article-deep-crawl-master (1)/gfg-article-deep-crawl-master/check_rank [] ['selenium.py', 'tools.py', '__init__.py', 'run_check.py'] -------------------------------- ./.ipynb_checkpoints [] ['Untitled-checkpoint.ipynb'] -------------------------------->
Comprensió de llistes niades amb Os.Walk
Programa per trobar els fitxers Python a l'arbre de directoris, això vol dir que hem de trobar els fitxers que acaben amb l'extensió .py.
Python # code import os if __name__ == '__main__': pythonFiles = [file for dirs in os.walk('.', topdown=True) for file in dirs[2] if file.endswith('.py')] print('python files in the directory tree are ') for r in pythonFiles: print(r)>
Sortida
python files in the directory tree are Solution.py>