logo

os.walk() i Python

Hur går man igenom filsystemet i Python? Anta att vi har angett nedan filstruktur i vårt system och vi vill gå igenom alla dess grenar helt från topp till botten? Exempel på filsystem

mylivecricket in för live cricket

Hur fungerar os.walk() i python?

OS.walk() genererar filnamnen i ett katalogträd genom att gå i trädet antingen uppifrån och ner eller nerifrån. För varje katalog i trädet som är rotad i katalogens topp (inklusive själva toppen), ger den en 3-tuppel (dirpath, dirnames, filnamn).



  • rot: Skriver ut kataloger endast från det du angett.
  • säga: Skriver ut underkataloger från root.
  • filer: Skriver ut alla filer från rot och kataloger.
Python3
# Driver function import os if __name__ == "__main__": for (root,dirs,files) in os.walk('.', topdown=True): print (root) print (dirs) print (files) print ('--------------------------------')>

Produktion:

abstrakt klass vs gränssnitt
['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'] -------------------------------->

Kapslad listaförståelse med Os.Walk

Program för att hitta python-filerna i katalogträdet vilket innebär att vi måste hitta filerna som slutar med .py-tillägget.

Pytonorm
# 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)>

Produktion
python files in the directory tree are Solution.py>