Pythonの:リストディレクトリ/ファイル名とサブディレクトリ

社会保障:

私は順序を変更し、時間によって、リストのディレクトリ、サブディレクトリのファイルにしようとしています。私はコードの下で望ましい結果を取得しています。関数の中で、このコードを配置する場合でも、私は最後の行だけを取得しています。

import os
from fnmatch import fnmatch

root = 'Test\\inputs\\'
pattern = "*"

for path, subdirs, files in sorted(os.walk(root), reverse=True):
    for name in files:
        if fnmatch(name, pattern):
            print(os.path.join(path, name))

出力:

Test\inputs\backup\cdr_dsw
Test\inputs\backup\cdr_ds.xml
Test\inputs\backup\dsdf.xml
Test\inputs\testing.txt

same code using function:

import os
from fnmatch import fnmatch
root = 'Test\\inputs\\'
pattern = "*"

def Listdir():
    X = []
    for path, subdirs, files in sorted(os.walk(root), reverse=True):
        for name in files:
            if fnmatch(name, pattern):
                X.append(os.path.join(path, name))
                return X

print(Listdir())

output:

Test\inputs\backup\cdr_dsw

私がやっている何を間違えわかりません。ヘルプには、私のミスを修正してください。私は機能としてこれを使用したいです。

前もって感謝します。

アリRnの:

あなたが書くためreturn Xif、それはちょうどあなたが下でそれを書くことができ、最初のものを返すfor、すべてのパスが追加したときにXを返すことができますので、

def Listdir():
    X = []
    for path, subdirs, files in sorted(os.walk(root), reverse=True):
        for name in files:
            if fnmatch(name, pattern):
                X.append(os.path.join(path, name))
     return X

print(Listdir())

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=33903&siteId=1