Pythonの[日14-2]は再帰的にフォルダをトラバース

1つの #は、ファイルおよびサブフォルダのサブフォルダの全横断する必要-再帰
2  
。3  「」「」「」
、4  「」
5  擬似コード
 6  1、--listdirのルートディレクトリトラバーサルを
 7。    第一段階を得ることサブフォルダ(サブフォルダは、サブフォルダを含まない)とファイル
 8  2、判決は、ファイルやフォルダである
 9      ファイルは、直接ファイル名を印刷する場合は
 10を     、それはフォルダ(仕事のための完全なパス)であれば、それは自分自身を呼び出します(再帰的に)
 。11  
12は、 ステップ:
 13である 機能を実現する1
 14  2を、次いで最適化-各印刷くぼみのディレクトリ
 15  ' ''を
16  インポートOS
 17  
18である #1 パス1 = r'D:\プログラム\ジェットブレーンズ\ PycharmProjects \ xq_py \フルスタック16 \ 001 '#絶対パス
19パス1 = R&LT ' ..\ 001 "  相対パス、.. \現在のディレクトリ#推奨表し\カレントディレクトリの親ディレクトリを示す。
20は 
21である DEF(パス1は、N-)for_file:#1 パラメータ1フォルダのルートディレクトリパス、レベル2の調整用のパラメータでありますインデント
22は、      たLi1にos.listdir(パス1)= #を。1つのリスト(サブフォルダとサブファイルは含まれません)最初のフォルダ階層のルートディレクトリの下のファイルとのリストを返す
23です     #の#の[「002(たLi1で)印刷'' 003.py '' 005.py '' __init__.py「] 
24      のための I におけるたLi1で:ループリストを2、最初のフォルダ及びファイルの階層構造の印刷
25          full_path1を= os.path.join (パス1、I) 最初のフォルダ階層の3スプライスさフルパス。
26は、         #1 印刷(full_path1)
27          IF os.path.isdir(full_path1): 4は、フォルダへの完全なパスか否かを判断する
28             印刷\ tの * + N-I) 4-2、フォルダの名前を印刷し、フォルダへのフルパスです(フォルダ名はフルパスを印刷する必要はありません)
29              for_file(full_path1、N- + 1)  独自のチューン#5は、それが自分自身を呼び出して、あなた自身のフォルダのフルパスです-再帰
30              最初のルートディレクトリとしてレベルのフォルダ、
31              #1 注:再帰フォルダがないフォルダ名、フルパスでなければならないとき
32              。パラメーター2のn + 1は1をそれぞれ再帰は、インデントが増加する時間を表し、
33は         。、6フルパスは、その後、フォルダ以外のファイルの名前であり、ファイルを印刷することができる(ファイルの印刷名は、完全なパスを必要としません)
34で             印刷' \のT ' * + N-I) 6-2 '\ T'タブ区切りスペースのインデントを表し-4 
35  
36 for_file(path1,1) - 7呼び出し関数は、パラメータが(推奨絶対パスまたは相対パスであってもよい)、ルートフォルダのフルパスで
37  インデントのレベルを調整するために使用されるパラメータ2 
38  #1 (を含むルートフォルダ内のファイルを階層サブフォルダとサブファイル)及び図くぼみ
39      002 
40           003 
41である              004.py 
42は、     #1          __init__.py 
43である          003.py 
44である          __init__.py 
45      003.py 
46は     #1 005.py 
47      __init__.py

 

おすすめ

転載: www.cnblogs.com/wangtp/p/11785080.html