我有一些代码需要遍历给定路径上的所有文件。但是我注意到发生了一些奇怪的错误,结果发现我的代码不仅搜索给定路径上的文件,还搜索位于同一路径的文件夹中的所有文件。
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
任何建议都会很棒!
答案 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"