私はディレクトリを歩いて、特定の拡張子で終わるそのディレクトリ内のすべてのファイルを検索し、そのファイルをリストに書き込もうとしています。このリストは、関数がその仕事をした後に返されるはずです。今関数からの戻り値() - 間違っていますか?
def grabFiles(source,ext):
import fnmatch
import os
matches = [] #tmp var which is used to return the files matching the search mask.
for root, dirnames, filenames in os.walk(source): #for each folder & subfolder do:
for filename in fnmatch.filter(filenames, ext): #and for each file found like that do:
matches.append(os.path.join(root, filename))#append the file name&directory to the "matches" variable.
return(matches) #return the content of matches
私は、以下のものを使用して、これを実行します。
ext=[".caf", ".lmg", ".chr", ".cdf", ".dds", ".tif", ".mtl", ".cgf", ".cga"]
for filetype in ext:
files= nPy.grabFiles("D:\\01_SVN\\01_DE\\trunk\\Game",filetype)
print files
私は右、それは私のextリスト内の各拡張のためのファイルで私にリストを返すべきであると考えていますか? 代わりに、extリストの各項目に[]を返します。
私は定義を使用せずにこの事を発射した場合、それだけで正常に動作します:/
import fnmatch
import os
source ="D:\\01_SVN\\01_DE\\trunk\\Game"
extension = ["*.mtl","*.tif","*.chr"]
matches = []
for filetype in extension:
for root, dirnames, filenames in os.walk("%s" % (source)):
for filename in fnmatch.filter(filenames, "%s" % (filetype)):
matches.append(os.path.join(root, filename))
print matches
私は1時間以上、このを見つめ、そしてによって私自身のスクリプトへのイム恐れてイム事実上ブラインドされてきました今すぐ:<ダンリストを返すことができないか、返事の仕方を誤解していますが、リストから問題のない新しいvarにリストを渡す必要がありますか?
だけ
endswith
を使用することになり、ない機能が注目されています。ヘッドアップの場合: –
文字列の引数が1つだけの文字列フォーマットを続けている理由は何ですか?なぜその単一の文字列変数を使用しないのですか? – jdi