社会保障:
私は順序を変更し、時間によって、リストのディレクトリ、サブディレクトリのファイルにしようとしています。私はコードの下で望ましい結果を取得しています。関数の中で、このコードを配置する場合でも、私は最後の行だけを取得しています。
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 X
にif
、それはちょうどあなたが下でそれを書くことができ、最初のものを返す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())