Come attraversare il file system in Python? Supponiamo di aver fornito la struttura dei file di seguito nel nostro sistema e di voler attraversare completamente tutti i suoi rami dall'alto verso il basso?
Come funziona os.walk() in Python?
OS.walk() genera i nomi dei file in un albero di directory percorrendo l'albero dall'alto verso il basso o dal basso verso l'alto. Per ogni directory nell'albero con radice nella directory top (inclusa top stessa), produce una tupla di 3 (dirpath, dirnames, nomi di file).
- radice : Stampa le directory solo da quelle specificate.
- Dire: Stampa le sottodirectory da root.
- File : Stampa tutti i file dalla root e dalle directory.
# Driver function import os if __name__ == "__main__": for (root,dirs,files) in os.walk('.', topdown=True): print (root) print (dirs) print (files) print ('--------------------------------')>
Produzione:
['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'] -------------------------------->
Comprensione delle liste nidificate con Os.Walk
Programma per trovare i file Python nell'albero delle directory, ciò significa che dobbiamo trovare i file che terminano con l'estensione .py.
Pitone # 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)>
Produzione
python files in the directory tree are Solution.py>