2017-03-16 11 views
-1

私は答えを見つけようとしましたが空になりました。私はos.walk()をPythonで使用しようとしますが、ディレクトリにファイルがあっても空のリストを返します。フォルダ構造は次のとおりです。os.walk()はファイル名を返しません

↳Photos 
    ↳fold1 
    ↳ file1.jpg 
    ↳ file1.nef 
    ↳fold2 
    ↳subfold1 
     ↳ file2.jpg 
    ↳ file2.jpg 
    ↳ file2.nef 

私のコードは、現在、非常に単純です(今の心の作成dirs_pathいけない、それが期待通りに動作します):

class PhotosCleanup(object): 
    def __init__(self): 
     super(PhotosCleanup, self).__init__() 

    def create_dirs_list(self): 
     for root, directories, filenames in os.walk(top='Photos'): 
      dirs_path = [os.path.join(root, dp) for dp in directories] 
      print dirs_path 
pc = PhotosCleanup() 
pc.create_dirs_list() 

が、ファイル名、変数は空です。何が間違っているのですか?

EDIT:更新されたコードスニペット。

EDIT2は:[OK]を、私は、このスクリプトのacutal結果を貼り付けるのを忘れ:

あなたが任意のフォルダの場所を与えたことはない
['Photos\\fold1', 'Photos\\fold2'] 
['Photos\\fold1\\Obrobione'] 
[] 
[] 
+0

コードをどのように正確に実行していますか? –

+1

あなたのコードは 'filenames'変数で何もしようとしていません。あなたはそれが空であるとどのくらい確信していますか? – tripleee

+0

私は以前試みたことがありますが、今はデバッガを使用しています。 – CePeeN

答えて

-1

、あなたが言うすべてはos.walkを実行するために十分ではありません=フォルダ、トップでありますその義務。

os.walk(top = '写真')、これにいくつかのアドレスを追加してください。

print __file__ 

をあなたの現在のフォルダを取得するには:

+0

あなたは何を意味するのか分かりません。これは、フォルダやサブフォルダで動作しますが、ファイル名で可変なファイル名を埋めるのではありません。私は問題の実際の出力を追加しました。 – CePeeN

0

は、スクリプト・ファイルとPhotosフォルダが同じディレクトリにある、またはあなたが使用できることを確認してください。

あなたは間違った相対パスを使用していると思います。絶対パスを使用することもできます。実際には、コードはうまく動作します。

+0

それらは同じフォルダにあります。つまり、写真とスクリプトがあるFileUtilsフォルダがあります。 – CePeeN

0

申し訳ありませんが、私は何が間違っていたのか分かりませんが、実際には、混乱のために申し訳ありません。私の悪い。なぜデバッガが空であるかが分かりません。またすみません。

関連する問題