Python:搜索给定路径中的文件,但不搜索给定路径下的目录中的文件

时间:2016-04-27 13:24:41

标签: python

我有一些代码需要遍历给定路径上的所有文件。但是我注意到发生了一些奇怪的错误,结果发现我的代码不仅搜索给定路径上的文件,还搜索位于同一路径的文件夹中的所有文件。

E.g 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

任何建议都会很棒!

2 个答案:

答案 0 :(得分:2)

如果您不需要查看子目录,可以使用

for item in os.listdir(path):
  if os.path.isfile(item):
    print item

答案 1 :(得分:1)

更新:如果使用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"