2017-01-06 24 views
-2

私はPythonの初心者です。私はグーグルで本を読んで学びました。私は基本を学びました(私はそれらを理解しています)私はファイルを扱う方法も学びました(しかし、私は文法を例えば)それを理解:機能.walk()を持つファイルをループし を、我々はループに三つの変数を使用して、私はまだそれを得ることはありません:Pythonでファイルを操作するには?

for root, dirs, files in os.walk('*dir*', topdown=True): 
    for name in files: 
     filePath=(os.path.join(root, name)) 
     print(filePath) 
    for name in dirs: 
     filePath2=(os.path.join(root, name)) 
     print(filePath2) 

私は本当に上記のコードを得ることはありません! なぜ多くの変数を使用したのですか?なぜ2つのループを使用したのですか?なぜ、os.path.joinを2回使用しましたか?

+2

私はあなたに 'print(root、dirs、files)'とお勧めします。また、['os.walk'](https://docs.python.org/3/library/os.html#os.walk)のドキュメントも読んでください。 –

+0

'walk'はファイルシステムを歩くときにタプルを与えます' root'は現時点のディレクトリ、 'dirs'は' root'のディレクトリのリスト、 'files'は' root'ここで行われているすべてのコードは 'dirs'と' files'の両方を通り、それらのファイルとディレクトリへの完全なパスを出力します。 –

+0

1)実行するコードが必要なので、2)1つは 'dirs 'を介して'ファイル 'を超えています。 3) 'os.path.join'は異なるパラメータ(' for'の繰り返しごとに 'name'の変更)で2回使用されました。 – Bakuriu

答えて

0

外部ループで返される変数は、「現在の」ディレクトリにあるディレクトリとファイルを含むリストです。これらのリストはディレクトリツリーが解析されるときに反復され、個々のファイルとサブディレクトリを見ることができます。 os.path.join関数は、各ファイルと各サブディレクトリのパスを作成して表示します。

注意すべきことは、walk関数がディレクトリツリー全体を再帰的に歩くことです。これは少し単純化しますが、再帰呼び出しがwalk関数内に隠されているため、この関数の動作を理解していない人には混乱するかもしれません。