2016-04-27 16 views
0

あるパスのすべてのファイルを循環させる必要のあるコードがあります。しかし、私はいくつかの奇妙なエラーが発生し、私のコードは、特定のパスではなく、同じパスにあるフォルダ内のすべてのファイルを検索することが判明した。Python:指定されたパスにあるファイルを検索しますが、指定されたパスのディレクトリにあるファイルは検索しません。

例えばpath = /home/Documents/place_to_check

At path: 
    file1.txt 
    file2.txt 
    file3.txt 
    folder_containing_other_files 

私はちょうど3つのファイルを順番にしたいとフォルダfolder_containing_other_files内に配置されたすべてのファイルを無視します。私のコードは、現在のように見える

for root, dirs, files in os.walk(path): 
     for file in files: 
      #Search for file 
      if file == "specific_file_I_want.json": 
       print "FOUND FILE" 

私は、最初の行からdirsを削除しようとしたが、それはエラーをスローしています:

ValueError: too many values to unpack 

何かアドバイスは素晴らしいことです!あなたがサブディレクトリに見てする必要がない場合は

答えて

1

UPDATE:os.listdirを使用している場合:

import os 
all_files = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path, i))] 

#Search for file 
if "specific_file_I_want.json" in all_files: 
    print "FOUND FILE" 

os.walkを使用している場合:

all_files = [ files for root, _, files in os.walk(path) if os.path.abspath(root) == os.path.abspath(path) ][0] 
if "specific_file_I_want.json" in all_files: 
    print "FOUND FILE" 
2

は、使用することができます

for item in os.listdir(path): 
    if os.path.isfile(item): 
    print item 
関連する問題